Esempio n. 1
0
        public void ApplyChanges(CreatureBaseStats gameStats)
        {
            gameStats.HpBase += ChangeOfHp;
            gameStats.MpBase += ChangeOfMp;

            gameStats.Spirit    += ChangeOfSpirit;
            gameStats.Strength  += ChangeOfStrength;
            gameStats.Stamina   += ChangeOfStamina;
            gameStats.Dexterity += ChangeOfDexterity;

            gameStats.Attack   += ChangeOfAttack;
            gameStats.Defense  += ChangeOfDefense;
            gameStats.Accuracy += ChangeOfAccuracy;
            gameStats.Dodge    += ChangeOfDodge;

            gameStats.CriticalAttackRate    += ChangeOfCriticalAttackRate;
            gameStats.SkillCriticalRate     += ChangeOfSkillCriticalRate;
            gameStats.ComboAttackRate       += ChangeOfComboAttackRate;
            gameStats.RageModeDuration      += ChangeOfRageModeDuration;
            gameStats.ReflectChance         += ChangeOfReflectChance;
            gameStats.BlockDamageChance     += ChangeOfBlockDamageChance;
            gameStats.ArmorBreakRate        += ChangeOfArmorBreakRate;
            gameStats.AddAttackPowerRate    += ChangeOfAddAttackPowerRate;
            gameStats.DrainerRate           += ChangeOfDrainerRate;
            gameStats.SkillDodgeRate        += ChangeOfSkillDodgeRate;
            gameStats.RageAttackDamagerRate += ChangeOfRageAttackDamagerRate;
            gameStats.RageIncreaseRate      += ChangeOfRageIncreaseRate;
        }
 public void ApplyChanges(CreatureBaseStats gameStats)
 {
     gameStats.Power += ChangeOfPower;
     gameStats.Endurance += ChangeOfEndurance;
     gameStats.ImpactFactor += ChangeOfImpactFactor;
     gameStats.BalanceFactor += ChangeOfBalanceFactor;
     gameStats.Movement += ChangeOfMovement;
     gameStats.AttackSpeed += ChangeOfAttackSpeed;
 }
Esempio n. 3
0
 public void ApplyChanges(CreatureBaseStats gameStats)
 {
     gameStats.Power         += ChangeOfPower;
     gameStats.Endurance     += ChangeOfEndurance;
     gameStats.ImpactFactor  += ChangeOfImpactFactor;
     gameStats.BalanceFactor += ChangeOfBalanceFactor;
     gameStats.Movement      += ChangeOfMovement;
     gameStats.AttackSpeed   += ChangeOfAttackSpeed;
 }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        public override void Release()
        {
            if (ObserversList != null)
            {
                ObserversList.Clear();
            }
            ObserversList = null;

            VisiblePlayers = null;
            VisibleNpcs    = null;
            VisibleItems   = 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;

            EffectsLock = null;

            base.Release();
        }
Esempio n. 6
0
        public void CopyTo(CreatureBaseStats gameStats)
        {
            //HpMp
            gameStats.HpBase = HpBase;
            gameStats.MpBase = MpBase;
            gameStats.SpBase = SpBase;

            //Combat
            gameStats.Attack   = Attack;
            gameStats.Defense  = Defense;
            gameStats.Accuracy = Accuracy;
            gameStats.Dodge    = Dodge;

            //Stats
            gameStats.Spirit    = Spirit;
            gameStats.Strength  = Strength;
            gameStats.Stamina   = Stamina;
            gameStats.Dexterity = Dexterity;

            //Regen
            gameStats.NaturalMpRegen = NaturalMpRegen;

            gameStats.Passivities = new List <Passivity>();
        }
Esempio n. 7
0
        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>();
        }
Esempio n. 8
0
        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;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 9
0
        public override void Release()
        {
            if (ObserversList != null)
                ObserversList.Clear();
            ObserversList = null;

            VisiblePlayers = null;
            VisibleNpcs = null;
            VisibleItems = 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;

            EffectsLock = null;

            base.Release();
        }
Esempio n. 10
0
        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();
        }
Esempio n. 11
0
        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>();
        }
Esempio n. 12
0
        public void CopyTo(CreatureBaseStats gameStats)
        {
            //HpMp
            gameStats.HpBase = HpBase;
            gameStats.MpBase = MpBase;
            gameStats.SpBase = SpBase;

            //Combat
            gameStats.Attack = Attack;
            gameStats.Defense = Defense;
            gameStats.Accuracy = Accuracy;
            gameStats.Dodge = Dodge;

            //Stats
            gameStats.Spirit = Spirit;
            gameStats.Strength = Strength;
            gameStats.Stamina = Stamina;
            gameStats.Dexterity = Dexterity;

            //Regen
            gameStats.NaturalMpRegen = NaturalMpRegen;

            gameStats.Passivities = new List<Passivity>();
        }
Esempio n. 13
0
        public void ApplyChanges(CreatureBaseStats gameStats)
        {
            gameStats.HpBase += ChangeOfHp;
            gameStats.MpBase += ChangeOfMp;

            gameStats.Spirit += ChangeOfSpirit;
            gameStats.Strength += ChangeOfStrength;
            gameStats.Stamina += ChangeOfStamina;
            gameStats.Dexterity += ChangeOfDexterity;

            gameStats.Attack += ChangeOfAttack;
            gameStats.Defense += ChangeOfDefense;
            gameStats.Accuracy += ChangeOfAccuracy;
            gameStats.Dodge += ChangeOfDodge;

            gameStats.CriticalAttackRate += ChangeOfCriticalAttackRate;
            gameStats.SkillCriticalRate += ChangeOfSkillCriticalRate;
            gameStats.ComboAttackRate += ChangeOfComboAttackRate;
            gameStats.RageModeDuration += ChangeOfRageModeDuration;
            gameStats.ReflectChance += ChangeOfReflectChance;
            gameStats.BlockDamageChance += ChangeOfBlockDamageChance;
            gameStats.ArmorBreakRate += ChangeOfArmorBreakRate;
            gameStats.AddAttackPowerRate += ChangeOfAddAttackPowerRate;
            gameStats.DrainerRate += ChangeOfDrainerRate;
            gameStats.SkillDodgeRate += ChangeOfSkillDodgeRate;
            gameStats.RageAttackDamagerRate += ChangeOfRageAttackDamagerRate;
            gameStats.RageIncreaseRate += ChangeOfRageIncreaseRate;
        }