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); }
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); }