public void ApplyChanges(CreatureBaseStats gameStats) { gameStats.Power += ChangeOfPower; gameStats.Endurance += ChangeOfEndurance; gameStats.ImpactFactor += ChangeOfImpactFactor; gameStats.BalanceFactor += ChangeOfBalanceFactor; gameStats.Movement += ChangeOfMovement; gameStats.AttackSpeed += ChangeOfAttackSpeed; }
public void ApplyChanges(CreatureBaseStats gameStats) { gameStats.Power += ChangeOfPower; gameStats.Endurance += ChangeOfEndurance; gameStats.ImpactFactor += ChangeOfImpactFactor; gameStats.BalanceFactor += ChangeOfBalanceFactor; gameStats.Movement += ChangeOfMovement; gameStats.AttackSpeed += ChangeOfAttackSpeed; }
public override void Release() { if (ObserversList != null) { ObserversList.Clear(); } ObserversList = null; VisiblePlayers = null; VisibleNpcs = null; VisibleItems = null; VisibleGathers = null; if (Ai != null) { Ai.Release(); } Ai = null; if (_lifeStats != null) { _lifeStats.Release(); } _lifeStats = null; GameStats = null; Position = null; BindPoint = null; Instance = null; Target = null; if (VisualEffect != null) { VisualEffect.Release(); } VisualEffect = null; if (Effects != null) { for (int i = 0; i < Effects.Count; i++) { Effects[i].Release(); } } Effects = null; EffectsLock = null; base.Release(); }
public void CopyTo(CreatureBaseStats gameStats) { //HpMp gameStats.HpBase = HpBase; gameStats.HpStamina = HpStamina; gameStats.MpBase = MpBase; gameStats.MpStamina = MpStamina; //Combat gameStats.Attack = Attack; gameStats.Defense = Defense; gameStats.Impact = Impact; gameStats.Balance = Balance; gameStats.CritChanse = CritChanse; gameStats.CritResist = CritResist; gameStats.CritPower = CritPower; //Stats gameStats.Power = Power; gameStats.Endurance = Endurance; gameStats.ImpactFactor = ImpactFactor; gameStats.BalanceFactor = BalanceFactor; gameStats.AttackSpeed = AttackSpeed; gameStats.Movement = Movement; //Resistances gameStats.WeakeningResist = WeakeningResist; gameStats.PeriodicResist = PeriodicResist; gameStats.StunResist = StunResist; //Regen gameStats.NaturalMpRegen = NaturalMpRegen; gameStats.CombatMpRegen = CombatMpRegen; gameStats.Passivities = new List <Passivity>(); }
public override void Release() { if (ObserversList != null) ObserversList.Clear(); ObserversList = null; VisiblePlayers = null; VisibleNpcs = null; VisibleItems = null; VisibleGathers = null; if (Ai != null) Ai.Release(); Ai = null; if (_lifeStats != null) _lifeStats.Release(); _lifeStats = null; GameStats = null; Position = null; BindPoint = null; Instance = null; Target = null; if (VisualEffect != null) VisualEffect.Release(); VisualEffect = null; if (Effects != null) for (int i = 0; i < Effects.Count; i++) Effects[i].Release(); Effects = null; EffectsLock = null; base.Release(); }
public void CopyTo(CreatureBaseStats gameStats) { //HpMp gameStats.HpBase = HpBase; gameStats.HpStamina = HpStamina; gameStats.MpBase = MpBase; gameStats.MpStamina = MpStamina; //Combat gameStats.Attack = Attack; gameStats.Defense = Defense; gameStats.Impact = Impact; gameStats.Balance = Balance; gameStats.CritChanse = CritChanse; gameStats.CritResist = CritResist; gameStats.CritPower = CritPower; //Stats gameStats.Power = Power; gameStats.Endurance = Endurance; gameStats.ImpactFactor = ImpactFactor; gameStats.BalanceFactor = BalanceFactor; gameStats.AttackSpeed = AttackSpeed; gameStats.Movement = Movement; //Resistances gameStats.WeakeningResist = WeakeningResist; gameStats.PeriodicResist = PeriodicResist; gameStats.StunResist = StunResist; //Regen gameStats.NaturalMpRegen = NaturalMpRegen; gameStats.CombatMpRegen = CombatMpRegen; gameStats.Passivities = new List<Passivity>(); }
public Projectile(Creature.Creature owner, ProjectileSkill projectileSkill) { Player.Player player = owner as Player.Player; Npc.Npc npc = owner as Npc.Npc; Parent = owner; if (npc != null) { TargetPosition = new WorldPosition(); npc.Target.Position.CopyTo(TargetPosition); } else TargetPosition = owner.Attack.Args.TargetPosition; Position = new WorldPosition { Heading = owner.Position.Heading, X = owner.Position.X, Y = owner.Position.Y, Z = owner.Position.Z + projectileSkill.DetachHeight, }; double angle = Position.Heading * Math.PI / 32768; Position.X += projectileSkill.DetachDistance * (float)Math.Cos(angle); Position.Y += projectileSkill.DetachDistance * (float)Math.Sin(angle); Instance = owner.Instance; ProjectileSkill = projectileSkill; GameStats = new CreatureBaseStats {HpBase = 1}; if (player != null) { Skill = Data.Skills[0][player.TemplateId][ProjectileSkill.Id]; SkillId = Skill.Id; } else if (npc != null) { Skill = Data.Skills[npc.NpcTemplate.HuntingZoneId][npc.NpcTemplate.Id][ProjectileSkill.Id]; SkillId = Skill.Id + 0x40000000 + (npc.NpcTemplate.HuntingZoneId << 16); } Lifetime = Skill.ProjectileData.LifeTime != 0 ? Skill.ProjectileData.LifeTime : 1000; if (projectileSkill.FlyingDistance <= 0f) TargetPosition = null; else if (Skill != null) { if (TargetPosition.IsNull()) { TargetPosition = Position.Clone(); TargetPosition.X += projectileSkill.FlyingDistance * (float)Math.Cos(angle); TargetPosition.Y += projectileSkill.FlyingDistance * (float)Math.Sin(angle); } Speed = (int) (projectileSkill.FlyingDistance*1000/Lifetime); } if (Skill != null) { if (Skill.TargetingList != null) { for (int i = 0; i < Skill.TargetingList.Count; i++) { if (Skill.TargetingList[i].AreaList == null) continue; for (int j = 0; j < Skill.TargetingList[i].AreaList.Count; j++) { if (Skill.TargetingList[i].AreaList[j].MaxRadius > AttackDistance) { AttackDistance = Skill.TargetingList[i].AreaList[j].MaxRadius; return; } } } } } }
public static int LoadStats() { /* using (FileStream fs = File.OpenRead(DataPath + "stats.bin")) { Stats = Serializer.Deserialize<List<CreatureBaseStats>>(fs); } */ try { XmlReader xmlFile; xmlFile = XmlReader.Create(statsFile, new XmlReaderSettings()); DataSet ds = new DataSet(); ds.ReadXml(xmlFile); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { CreatureBaseStats tmpStats = new CreatureBaseStats(); tmpStats.NpcId = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[0]); tmpStats.NpcName = Convert.ToString(ds.Tables[0].Rows[i].ItemArray[1]); var tmpClass = Convert.ToString(ds.Tables[0].Rows[i].ItemArray[2]); tmpStats.Level = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[3]); tmpStats.NpcHuntingZoneId = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[4]); tmpStats.Attack = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[5]); tmpStats.AttackSpeed = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[6]); tmpStats.Balance = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[7]); tmpStats.BalanceFactor = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[8]); tmpStats.Impact = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[9]); tmpStats.ImpactFactor = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[10]); tmpStats.CritChanse = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[11]); tmpStats.CritPower = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[12]); tmpStats.Movement = Convert.ToInt16(ds.Tables[0].Rows[i].ItemArray[13]); tmpStats.Power = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[14]); tmpStats.HpBase = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[15]); tmpStats.HpStamina = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[16]); tmpStats.MpBase = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[17]); tmpStats.MpStamina = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[18]); tmpStats.NaturalMpRegen = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[19]); tmpStats.CombatMpRegen = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[20]); tmpStats.Endurance = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[21]); tmpStats.Defense = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[22]); tmpStats.CritResist = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[23]); tmpStats.StunResist = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[24]); tmpStats.PeriodicResist = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[25]); tmpStats.WeakeningResist = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[26]); switch (tmpClass){ case "Warrior": tmpStats.PlayerClass = Enums.PlayerClass.Warrior; break; case "Lancer": tmpStats.PlayerClass = Enums.PlayerClass.Lancer; break; case "Slayer": tmpStats.PlayerClass = Enums.PlayerClass.Slayer; break; case "Berserker": tmpStats.PlayerClass = Enums.PlayerClass.Berserker; break; case "Sorcerer": tmpStats.PlayerClass = Enums.PlayerClass.Sorcerer; break; case "Archer": tmpStats.PlayerClass = Enums.PlayerClass.Archer; break; case "Priest": tmpStats.PlayerClass = Enums.PlayerClass.Priest; break; case "Mystic": tmpStats.PlayerClass = Enums.PlayerClass.Mystic; break; default: throw new Exception("Unk Class"); } Stats.Add(tmpStats); } } catch { Console.Beep(); } return Stats.Count; }