public static BaseEnemyCharacter GetEnemy(long objNo, ushort floor, float hpProb, float atkProb, float expProb, float startProbHp, float startProbAtk, float startProbExp) { TableEnemyData data = Array.Find(Table, i => i.ObjNo == objNo); BaseEnemyCharacter item = new BaseEnemyCharacter(); item.Initialize(); SetData(item, data, floor, data.Level, hpProb, atkProb, expProb, startProbHp, startProbAtk, startProbExp); switch (item.EType) { case EnemyType.Plant_1: //item.PosY = 3.18f; item.WEType = WeaponEffectType.Stone; break; case EnemyType.Plant_King: //item.PosY = 3.18f; item.WEType = WeaponEffectType.Stone; break; case EnemyType.PA_Drone_1: //item.PosY = 2.9f; item.WEType = WeaponEffectType.MachineGun; break; default: break; } return(item); }
public static bool SetLevel(BaseEnemyCharacter unit, int level, ushort floor, float hpProb, float atkProb, float expProb, float startProbHp, float startProbAtk, float startProbExp) { TableEnemyData data = Array.Find(Table, i => i.ObjNo == unit.ObjNo); if (CommonFunction.IsNull(data) == true) { return(false); } else { SetData(unit, data, floor, level, hpProb, atkProb, expProb, startProbHp, startProbAtk, startProbExp); return(true); } }
private static void SetData(BaseEnemyCharacter item, TableEnemyData data, ushort floor, int level, float hpProb, float atkProb, float expProb, float startProbHp, float startProbAtk, float startProbExp) { item.ObjNo = data.ObjNo; item.UnitNo = data.UnitNo; if (GameStateInformation.IsEnglish == false) { item.DisplayName = data.DisplayName; } else { item.DisplayName = data.DisplayNameEn; } item.EType = data.EType; item.InstanceName = data.Instance; item.Level = level; item.Race = data.Race; item.CurrentHp = (data.Hp * level * startProbHp) + (data.MagHp * hpProb * floor); item.MaxHpDefault = item.CurrentHp; item.FiringRange = data.Range; item.DefaultActionTurn = data.TurnMove; item.ActionTurn = item.DefaultActionTurn; item.IsMove = data.IsMove; item.AddAbnormalProb = data.StateBad; item.BaseAttack = ((data.Attack * startProbAtk) + (data.MagAtk * atkProb * floor)) * level; item.Dexterity = data.Dex; item.BaseDefense = ((data.Defence * startProbAtk) + (data.MagDef * atkProb * floor)) * level; item.PowerValue = data.Power; item.Critical = data.Cri; item.CriticalDexterity = data.CriDex; item.HaveExperience = Mathf.CeilToInt(((data.Exp * startProbExp) + (data.MagExp * expProb * floor)) * level); item.CommonString = data.Common; item.CurrentExperience = 0; item.NextLevelExperience = 1; item.HaveScore = data.HaveScore; }