Exemplo n.º 1
0
 public override void Remove(GameObject Object)
 {
     CurrentEffectBoost = 0;
     NewEffectBoost     = 0;
     // XDidY(Object, "emerge", "from the depths", "!");
     StatShifter.RemoveStatShifts();
 }
Exemplo n.º 2
0
 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"));
        }
Exemplo n.º 4
0
        public override void Remove(GameObject Object)
        {
            AddPlayerMessage("{{gray|The shroud of darkness about you disperses.}}");

            if (Object.HasPart("Blackout"))
            {
                Object.RemovePart <Blackout>();
            }
            StatShifter.RemoveStatShifts();
        }
Exemplo n.º 5
0
 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();
 }
Exemplo n.º 6
0
        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));
 }
Exemplo n.º 8
0
 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();
 }
Exemplo n.º 11
0
 public override bool Unmutate(GameObject GO)
 {
     StatShifter.RemoveStatShifts();
     return(base.Unmutate(GO));
 }
Exemplo n.º 12
0
 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));
        }