public override void Remove(GameObject Object) { CurrentEffectBoost = 0; NewEffectBoost = 0; // XDidY(Object, "emerge", "from the depths", "!"); StatShifter.RemoveStatShifts(); }
public override bool WantTurnTick() { if (!ParentObject.HasEffect(x => DiseaseEffects.Contains(x.ClassName))) { return(true); } else if (ParentObject.HasEffect(x => DiseaseEffects.Contains(x.ClassName) && ParentObject.GetStatValue("Hitpoints") <= 1)) { StatsShifted = true; --DailyCycleCount; if (DailyCycleCount <= 0) { StatShifter.SetStatShift(ParentObject, "Hitpoints", -1, true); DailyCycleCount += 2400; return(true); } } else if (!ParentObject.HasEffect(x => DiseaseEffects.Contains(x.ClassName))) { StatShifter.RemoveStatShifts(); DailyCycleCount = 2400; return(true); } else if (ParentObject.HasEffect(x => DiseaseEffects.Contains(x.ClassName)) && ParentObject.GetStatValue("Hitpoints") <= 1) { ParentObject.Die(null, null, "Your form withers away to your pathogenic guest."); } return(base.WantTurnTick()); }
public override void Remove(GameObject Object) { StatShifter.RemoveStatShifts(); if (Object.IsPlayer()) { Popup.Show("Your chitinous skin has hardened."); } Object.FireEvent(Event.New("CommandChitinHarden")); }
public override void Remove(GameObject Object) { AddPlayerMessage("{{gray|The shroud of darkness about you disperses.}}"); if (Object.HasPart("Blackout")) { Object.RemovePart <Blackout>(); } StatShifter.RemoveStatShifts(); }
public override void Remove(GameObject Object) { RemoveMyActivatedAbility(ref this.GrappleCommand); RemoveMyActivatedAbility(ref this.TackleCommand); RemoveMyActivatedAbility(ref this.HipThrowCommand); RemoveMyActivatedAbility(ref this.SuplexCommand); RemoveMyActivatedAbility(ref this.SubdueCommand); RemoveMyActivatedAbility(ref this.RavageLimbCommand); RemoveMyActivatedAbility(ref this.WrestleCommand); StatShifter.RemoveStatShifts(); }
public override void Remove(GameObject Object) { if (Object.HasEffect("Omniphase")) { Object.RemoveEffect("Omniphase"); } if (Object.HasEffect("Rubbergum_Tonic")) { Object.RemoveEffect("Rubbergum_Tonic"); } StatShifter.RemoveStatShifts(); }
public override bool Unmutate(GameObject GO) { StatShifter.RemoveStatShifts(); base.RemoveMyActivatedAbility(ref this.ActivatedAbilitiesID); return(base.Unmutate(GO)); }
public override void Remove(GameObject Object) { StatShifter.RemoveStatShifts(); }
public override bool FireEvent(Event E) { if (E.ID == "DefenderAfterAttackMissed" && ParentObject.HasEffect("AstralTabbyStance")) { var Defender = E.GetGameObjectParameter("Defender"); var Weapon = E.GetGameObjectParameter("Weapon"); // AddPlayerMessage("Defender: " + Defender); if (Defender == ParentObject) { var MMAComboAccess = ParentObject.GetPart <WM_MMA_CombinationStrikesI>(); MMAComboAccess.CurrentComboICounter++; MMAComboAccess.UpdateCounter(); } } else if (E.ID == "AttackerHit" && ParentObject.HasEffect("AstralTabbyStance")) { Damage Damage = E.GetParameter <Damage>("Damage"); Damage.Amount = (int)Math.Floor(Damage.Amount * 0.75); } else if (E.ID == "BeginTakeAction" && ParentObject.HasEffect <AstralTabbyStance>()) { // AddPlayerMessage("Log: Beginning Take Action"); var ParentCell = ParentObject.CurrentCell.GetLocalAdjacentCells(); // AddPlayerMessage("Log: Acquired Cells"); foreach (var C in ParentCell) { // AddPlayerMessage("Log: Starting Foreach"); if (C.HasObjectWithPart("Combat") && !C.HasObjectWithPart("FlankerReader_PAT")) { // AddPlayerMessage("Found Combat Targets"); var ObjectCheck = C.GetFirstObjectWithPart("Combat"); // AddPlayerMessage("Log: Getting Combat Targets"); if (!ObjectCheck.HasPart("FlankerReader_PAT")) { // AddPlayerMessage("Log: Adding FlankerCheckParts"); ObjectCheck.AddPart <FlankerReader_PAT>(); // AddPlayerMessage("Log: Added Flanker Part"); var ConfirmedObject = ObjectCheck.GetPart <FlankerReader_PAT>(); ConfirmedObject.Check = true; // AddPlayerMessage("Log: Confriming Object Flanker Pass"); if (ConfirmedObject.Check != false) { FlankersAboundDuration = 3; ParentObject.Statistics["DV"]._Value += 1; Targeted = true; FlankerAccumBonus += 1; ConfirmedObject.Check = false; } } // AddPlayerMessage("Log: Completed begin take action."); break; } else if (Targeted == true) { Targeted = false; } } } else if (E.ID == "TargetedForMissileWeapon" && ParentObject.HasEffect <AstralTabbyStance>()) { GameObject Attacker = E.GetGameObjectParameter("Attacker"); GameObject Defender = E.GetGameObjectParameter("Defender"); if (Defender == ParentObject) { Targeted = true; StatShifter.SetStatShift("DV", +ParentObject.Statistics["Agility"].Modifier + (ParentObject.Statistics["Level"].BaseValue / 8)); } } else if (E.ID == "EndTurn" && ParentObject.HasEffect <AstralTabbyStance>()) { // AddPlayerMessage("Log: Firing Endturn."); if (FlankersAboundDuration > 0 && Targeted == false) { // AddPlayerMessage("Log: Duration Countdown."); --FlankersAboundDuration; } else if (Targeted == false && FlankersAboundDuration <= 0) { // AddPlayerMessage("Log: Resetting Stats"); ParentObject.Statistics["DV"]._Value -= FlankerAccumBonus; FlankerAccumBonus = 0; Targeted = false; } else if (Targeted == true && StatShifter != null) { StatShifter.RemoveStatShifts(); } AddPlayerMessage("Log: Targeted: " + Targeted); AddPlayerMessage("FlankersAboundDuration: " + FlankersAboundDuration); } return(base.FireEvent(E)); }
public override void Remove(GameObject Object) { this.RemoveMyActivatedAbility(ref SlumberID, Object); StatShifter.RemoveStatShifts(); }
public override bool Unmutate(GameObject GO) { StatShifter.RemoveStatShifts(); return(base.Unmutate(GO)); }
public override void Remove(GameObject Object) { // XDidY(Object, "emerge", "from the depths", "!"); StatShifter.RemoveStatShifts(); }
public override bool FireEvent(Event E) { if (E.ID == "AttackerHit" && ParentObject.HasEffect("DawnStance")) { if (ParentObject.HasPart("WM_MMA_SureStrikes")) { var MMAComboSSAccess = ParentObject.GetPart <WM_MMA_SureStrikes>(); //Handles damage scaling. if (BonusSureStrike <= 10) { ++BonusSureStrike; } MMAComboSSAccess.UpdateCounter(); } else { try { var salthopperDamageSystem = ParentObject.GetPart <WM_MMA_PathSaltHopper>(); Damage Damage = E.GetParameter <Damage>("Damage"); var Attacker = ParentObject; if (salthopperDamageSystem.NegEffectsCollectiveTI.Any(Attacker.HasEffect)) { Damage.Amount = (int)Math.Round(Damage.Amount * 1.15f); } else if (salthopperDamageSystem.NegEffectsCollectiveTII.Any(Attacker.HasEffect)) { Damage.Amount = (int)Math.Round(Damage.Amount * 1.45f); } else if (salthopperDamageSystem.NegEffectsCollectiveTIII.Any(Attacker.HasEffect)) { Damage.Amount = (int)Math.Round(Damage.Amount * 2.5f); } else { Damage.Amount = (int)Math.Round(Damage.Amount * 1.0f); } } catch { } } } else if (E.ID == "CommandSureStrikes" && ParentObject.HasEffect("DawnStance")) { try { var MMAComboAccess = ParentObject.GetPart <WM_MMA_SureStrikes>(); MMAComboAccess.FistPenBonus = +BonusSureStrike; BonusSureStrike = 0; MMAComboAccess.UpdateCounter(); } catch { BonusSureStrike = 0; } } else if (E.ID == "CommandSureStrikes") { try { var MMAComboAccess = ParentObject.GetPart <WM_MMA_SureStrikes>(); MMAComboAccess.FistPenBonus = +BonusSureStrike; BonusSureStrike = 0; MMAComboAccess.UpdateCounter(); } catch { BonusSureStrike = 0; } } else if (E.ID == "PerformMeleeAttack" && ParentObject.HasEffect("DawnStance")) { int HitBonus = E.GetIntParameter("HitBonus"); HitBonus = +1; } if (E.ID == "GetDefenderHitDice" && ParentObject.HasEffect("DawnStance") && ParentObject.HasSkill("WM_MMA_PathSaltBack")) { // AddPlayerMessage("dawnSaltBack Defender Block Begins"); // GameObject Attacker = E.GetGameObjectParameter("Attacker"); var Owner = ParentObject; var SaltBackBlockSystem = ParentObject.GetPart <WM_MMA_PathSaltBack>(); Body body = Owner.GetPart("Body") as Body; List <BodyPart> hands = body.GetPart("Hand"); var hand = body.GetPrimaryWeaponOfTypeOnBodyPartOfType("DefaultMartialFist", "Hand"); int FistShieldAV = ParentObject.StatMod("Toughness", 1) + (ParentObject.Statistics["Level"].BaseValue / 4); if (SaltBackBlockSystem.SpecialFistCollective.Any(Owner.HasEquippedObject)) { SaltBackBlockSystem.PSBArmorBonus = 1; } if (Owner.GetShield() != null) { // AddPlayerMessage("SaltBackHalf Shield Returned Null"); return(true); } if (E.HasParameter("ShieldBlocked")) { // AddPlayerMessage("SaltBackHalf Blocked ParameterSet"); return(true); } if (!Owner.CanMoveExtremities(null, false, false, false)) { // AddPlayerMessage("SaltBackHalf CanMove Check"); return(true); } // AddPlayerMessage("SaltBackHalf Block Attempt Random Int"); if (Stat.Random(1, 100) <= 15 + (5 * (ParentObject.Statistics["Level"].BaseValue / 5))) { // AddPlayerMessage("SaltBackHalf SaltBack Status"); E.SetParameter("ShieldBlocked", true); // AddPlayerMessage("SaltBackHalf Damage"); if (Owner.IsPlayer()) { IComponent <GameObject> .AddPlayerMessage("You deflect an attack with your " + ParentObject.Equipped + "!" + "(" + FistShieldAV + " AV)", 'g'); } else { Owner.ParticleText(string.Concat(new object[] { "{{", IComponent <GameObject> .ConsequentialColor(Owner, null), "|Block! (+", FistShieldAV + " AV)}}" }), ' ', false, 1.5f, -8f); } E.SetParameter("AV", E.GetIntParameter("AV", 0) + FistShieldAV); } } if (E.ID == "BeginTakeAction" && ParentObject.HasEffect("DawnStance") && ParentObject.HasSkill("WM_MMA_PathAstralTabby")) { var ParentCell = ParentObject.CurrentCell.GetLocalAdjacentCells(); foreach (var C in ParentCell) { if (C.HasCombatObject()) { FlankersAboundBnsDuration = 7; StatShifter.SetStatShift("Speed", -2); } } } if (E.ID == "EndTurn" && ParentObject.HasEffect("DawnStance")) { if (FlankersAboundBnsDuration > 0) { --FlankersAboundBnsDuration; } else { StatShifter.RemoveStatShifts(); } var MMAComboAccess = ParentObject.GetPart <WM_MMA_SureStrikes>(); MMAComboAccess.UpdateCounter(); } return(base.FireEvent(E)); }