| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class FellowActorData : ActorData
- {
- const int mInitSTR = 1;
- const int mInitAGI = 1;
- const int mInitINT = 1;
- const int mInitLUK = 1;
- const int mInitDEX = 1;
- const int mInitVIT = 1;
- protected FellowBaseData mBaseData;
- public FellowBaseData BaseData { get { return mBaseData; } }
- private int mStep = 0;
- public int Step
- {
- get { return mStep; }
- }
- public override bool IsFellow
- {
- get { return true; }
- }
- public override int AvatarID
- {
- get
- {
- return mBaseData.AvatarId;
- }
- }
- private string mName;
- public override string Name
- {
- get { return mName; }
- }
- public override string Description
- {
- get { return mBaseData.Desc; }
- }
- public override ProfessionType Profession
- {
- get { return (ProfessionType)mBaseData.JobType; }
- }
- public override int JobStage
- {
- get
- {
- return mBaseData.JobStage;
- }
- }
- public override int JobBranch
- {
- get
- {
- return mBaseData.JobBranch;
- }
- }
- public override int PositionValue
- {
- get { return mBaseData.Position; }
- }
- public override int NatureId
- {
- get
- {
- return mBaseData.NatureId;
- }
- }
- public override string SkillFrameEventName { get { return mBaseData.frameEventName; } }
- public override string ProfessionIcon
- {
- get
- {
- return mBaseData != null ? mBaseData.ProfessionIcon : "";
- }
- }
- public override string HeadIcon
- {
- get { return mBaseData.HeadIcon; }
- set { }
- }
- public override string BattleBigIcon
- {
- get { return mBaseData.battleBigIcon; }
- }
- public override string AnimCtrlName
- {
- get { return mBaseData.BattleAnimCtrl; }
- }
- public override string ShowAnimCtrlName
- {
- get { return mBaseData.ShowAnimCtrl; }
- }
- #region OVERRIDE_PROPERTIES
- private SInt mBaseSTR = 1;
- public override SInt BaseSTR
- {
- get { return mBaseSTR; }
- set { mBaseSTR = value; }
- }
- private SInt mBaseAGI = 1;
- public override SInt BaseAGI
- {
- get { return mBaseAGI; }
- set { mBaseAGI = value; }
- }
- private SInt mBaseINT = 1;
- public override SInt BaseINT
- {
- get { return mBaseINT; }
- set { mBaseINT = value; }
- }
- private SInt mBaseVIT = 1;
- public override SInt BaseVIT
- {
- get { return mBaseVIT; }
- set { mBaseVIT = value; }
- }
- private SInt mBaseDEX = 1;
- public override SInt BaseDEX
- {
- get { return mBaseDEX; }
- set { mBaseDEX = value; }
- }
- private SInt mBaseLUK = 1;
- public override SInt BaseLUK
- {
- get { return mBaseLUK; }
- set { mBaseLUK = value; }
- }
- public override SInt STR
- {
- get
- {
- return (SInt)((mBaseSTR + (Level - 1) * mBaseData.STRRate) + GetAdditionalAttr(Attr_STR));
- }
- }
- public override SInt AGI
- {
- get
- {
- return (SInt)((mBaseAGI + (Level - 1) * mBaseData.AGIRate) + GetAdditionalAttr(Attr_AGI));
- }
- }
- public override SInt INT
- {
- get
- {
- return (SInt)((mBaseINT + (Level - 1) * mBaseData.INTRate) + GetAdditionalAttr(Attr_INT));
- }
- }
- public override SInt VIT
- {
- get
- {
- return (SInt)((mBaseVIT + (Level - 1) * mBaseData.VITRate) + GetAdditionalAttr(Attr_VIT));
- }
- }
- public override SInt DEX
- {
- get
- {
- return (SInt)((mBaseDEX + (Level - 1) * mBaseData.DEXRate) + GetAdditionalAttr(Attr_DEX));
- }
- }
- public override SInt LUK
- {
- get
- {
- return (SInt)((mBaseLUK + (Level - 1) * mBaseData.LUCKRate) + GetAdditionalAttr(Attr_LUK));
- }
- }
- public override SFloat BaseLife
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(1);
- SFloat p1 = BattleFormulaParamMgr.Instance.GetParam(31);
- SFloat p2 = BattleFormulaParamMgr.Instance.GetParam(32);
- SFloat baseLife = mBaseData.GetAttr(Attr_Life) + p1 * (mLevel * mLevel - 1) + p2 * (mLevel - 1);
- return baseLife * (1 + VIT * a);
- }
- }
- public override SFloat BaseSp
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(2);
- SFloat p1 = BattleFormulaParamMgr.Instance.GetParam(33);
- SFloat p2 = BattleFormulaParamMgr.Instance.GetParam(34);
- float baseSp = mBaseData.GetAttr(Attr_Sp) + p1 * (mLevel * mLevel - 1) + p2 * (mLevel - 1);
- return baseSp * (1 + INT * a);
- }
- }
- public override SFloat BaseAttack
- {
- get
- {
- SFloat attack = mBaseData.GetAttr(Attr_Attack);
- if (IsFront)
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(3);
- SFloat b = BattleFormulaParamMgr.Instance.GetParam(4);
- SFloat c = BattleFormulaParamMgr.Instance.GetParam(35);
- attack += a * (STR + c * DEX + c * LUK) + b * Mathf.Pow(Mathf.FloorToInt(STR * 0.1f), 2);
- }
- else
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(5);
- SFloat b = BattleFormulaParamMgr.Instance.GetParam(6);
- SFloat c = BattleFormulaParamMgr.Instance.GetParam(36);
- attack += a * (DEX + c * STR + c * LUK) + b * Mathf.Pow(Mathf.FloorToInt(DEX * 0.1f), 2);
- }
- return attack;
- }
- }
- public override SFloat BaseMagicAttack
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(7), b = BattleFormulaParamMgr.Instance.GetParam(8);
- SFloat magicAttack = mBaseData.GetAttr(Attr_MagicAttack);
- magicAttack += INT * a + b * Mathf.Pow(Mathf.FloorToInt(INT * 0.1f), 2);
- return magicAttack;
- }
- }
- public override SFloat BaseDefense
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(9);
- SFloat defense = mBaseData.GetAttr(Attr_Defense);
- defense = defense + a * VIT;
- return defense;
- }
- }
- public override SFloat BaseMagicDefense
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(10);
- SFloat magicDef = mBaseData.GetAttr(Attr_MagicDefense);
- magicDef = magicDef + a * INT;
- return magicDef;
- }
- }
- public override SFloat BaseDodge
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(11);
- SFloat dodge = mBaseData.GetAttr(Attr_Dodge) + a * AGI;
- return dodge;
- }
- }
- public override SFloat BaseHit
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(12);
- SFloat hit = mBaseData.GetAttr(Attr_Hit) + a * DEX;
- return hit;
- }
- }
- public override SFloat BaseCrit
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(13);
- SFloat crit = mBaseData.GetAttr(Attr_Crit) + a * LUK;
- return crit;
- }
- }
- public override SFloat BaseTen
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(14);
- SFloat ten = mBaseData.GetAttr(Attr_Ten) + a * LUK; ;
- return ten;
- }
- }
- public override SFloat BaseAttackSpeed
- {
- get
- {
- return mBaseData.AttackSpeed;
- }
- }
- public override SFloat Life
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Life);
- if (0 <= ServerData)
- return ServerData;
- return LocalLife;
- }
- }
- public override SFloat Sp
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Sp);
- if (0 <= ServerData)
- return ServerData;
- return LocalSp;
- }
- }
- public override SFloat Attack
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Attack);
- if (0 <= ServerData)
- return ServerData;
- return LocalAttack;
- }
- }
- public override SFloat MagicAttack
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_MagicAttack);
- if (0 <= ServerData)
- return ServerData;
- return LocalMagicAttack;
- }
- }
- public override SFloat Defense
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Defense);
- if (0 <= ServerData)
- return ServerData;
- return LocalDefense;
- }
- }
- public override SFloat MagicDefense
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_MagicDefense);
- if (0 <= ServerData)
- return ServerData;
- return LocalMagicDefense;
- }
- }
- public override SFloat Hit
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Hit);
- if (0 <= ServerData)
- return ServerData;
- return LocalHit;
- }
- }
- public override SFloat Crit
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Crit);
- if (0 <= ServerData)
- return ServerData;
- return LocalCrit;
- }
- }
- public override SFloat Dodge
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Dodge);
- if (0 <= ServerData)
- return ServerData;
- return LocalDodge;
- }
- }
- public override SFloat Ten
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_Ten);
- if (0 <= ServerData)
- return ServerData;
- return LocalTen;
- }
- }
- public override SFloat LocalAttackSpeed
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(24);
- SFloat b = BattleFormulaParamMgr.Instance.GetParam(25);
- SFloat attackSpeed = (BaseAttackSpeed + GetAdditionalAttr(Attr_AttackSpeed)) * (1 + GetAdditionalAttrPercent(Attr_AttackSpeed_Percent)) + AGI * a + DEX * b;
- return attackSpeed;
- }
- }
- public override SFloat AttackSpeed
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_AttackSpeed);
- if (0 <= ServerData)
- return ServerData;
- return LocalAttackSpeed;
- }
- }
- public override SFloat LocalCastAcceleration
- {
- get
- {
- SFloat a = BattleFormulaParamMgr.Instance.GetParam(28);
- SFloat CastAccelerationSpeed = DEX * a * 1000;//毫秒
- return CastAccelerationSpeed;
- }
- }
- //施法速度
- public override SFloat CastAcceleration
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_CastAcceleration);
- if (0 <= ServerData)
- return ServerData;
- return LocalCastAcceleration;
- }
- }
- //神威值
- public override SFloat GodPower
- {
- get
- {
- SFloat ServerData = GetSeverSecondAttr(Attr_GodPow);
- if (0 <= ServerData)
- return ServerData;
- return LocalGodPower;
- }
- }
- #endregion
- public FellowActorData(int id) : base(id)
- {
- mActorType = ActorType.Fellow;
- }
- public void SetStep(int step)
- {
- if (mStep == step) return;
- mStep = step;
- }
- public override void Initialize(int id, int level, SkillParam[] usedSkills)
- {
- base.Initialize(id, level, usedSkills);
- Gender = (int)Role_Gender.Male;
- mBaseData = new FellowBaseData(id);
- mAvatarData = new AvatarData(AvatarID);
- mName = I18N.T(mBaseData.Name);
- if (mSkillMgr == null)
- {
- mSkillMgr = new SkillManager(this);
- }
- if (usedSkills != null)
- {
- mSkillMgr.InitializeSkill(mBaseData.NormalSkillIds, usedSkills);
- }
- else
- {
- mSkillMgr.InitializeSkill(mBaseData.NormalSkillIds, mBaseData.SkillIds);
- }
- if (mBaseData.AlternativeSkills != null && mBaseData.AlternativeSkills.Length > 0)
- {
- mSkillMgr.InitAlternativeSkills(mBaseData.AlternativeSkills);
- }
- ResetFirstSkill();
- valid = mBaseData.valid && mAvatarData.valid;
- }
- public override void RefreshSkills(SkillParam[] usedSkills)
- {
- if (usedSkills != null)
- {
- mSkillMgr.InitializeSkill(mBaseData.NormalSkillIds, usedSkills);
- }
- }
- public override void Dispose()
- {
- if (mBaseData != null)
- {
- mBaseData.Dispose();
- mBaseData = null;
- }
- base.Dispose();
- }
- }
|