Exemplo n.º 1
0
        public override bool TryCast(NebulaObject source, PlayerSkill skill, out Hashtable info)
        {
            info = new Hashtable();
            var sourceTarget = source.Target();

            if (!sourceTarget.inCombat && sourceTarget.noSubscribers)
            {
                source.SetInvisibility(true);

                //var sourceShip = source.GetComponent<PlayerShip>();
                //if(sourceShip != null ) {
                //    sourceShip.SetInvisTimer(10);
                //}

                return(true);
            }
            return(false);
        }
Exemplo n.º 2
0
        public override bool TryCast(NebulaObject source, PlayerSkill skill, out Hashtable info)
        {
            info = new Hashtable();
            if (NotEnemyCheck(source, skill, info))
            {
                return(false);
            }

            float speedPc   = skill.GetFloatInput("speed_pc");
            float speedTime = skill.GetFloatInput("speed_time");
            float dmgPc     = skill.GetFloatInput("dmg_pc");

            bool mastery = RollMastery(source);

            if (mastery)
            {
                dmgPc   *= 2;
                speedPc *= 2;
            }


            var sourceWeapon  = source.Weapon();
            var targetObject  = source.Target().targetObject;
            var targetBonuses = targetObject.Bonuses();

            Buff speedDebuff = new Buff(skill.id, null, Common.BonusType.decrease_speed_on_pc, speedTime, speedPc);

            targetBonuses.SetBuff(speedDebuff, source);

            var targetDamagable = targetObject.Damagable();

            float damage = sourceWeapon.GenerateDamage().totalDamage *dmgPc;

            targetDamagable.SetTimedDamage(speedTime, damage, sourceWeapon.myWeaponBaseType, skill.idInt);
            info.Add((int)SPC.Damage, damage);

            source.SetInvisibility(false);

            return(true);
        }