private bool doInvulnerableToChanges(EMonsterStat aFlag) { BetterList<string> invulnerableStats = new BetterList<string>(); if(((aFlag&EMonsterStat.RangeAttack)==EMonsterStat.RangeAttack)&&((EMonsterStat.RangeAttack&this.invulnerableToChanges)==0)) { invulnerableToChanges = invulnerableToChanges | EMonsterStat.RangeAttack; invulnerableStats.Add("Range Attack"); } if(((aFlag&EMonsterStat.RangeDefense)==EMonsterStat.RangeDefense)&&((EMonsterStat.RangeDefense&this.invulnerableToChanges)==0)) { invulnerableToChanges = invulnerableToChanges | EMonsterStat.RangeDefense; invulnerableStats.Add("Range Defense"); } if(((aFlag&EMonsterStat.Speed)==EMonsterStat.Speed)&&((EMonsterStat.Speed&this.invulnerableToChanges)==0)) { invulnerableToChanges = invulnerableToChanges | EMonsterStat.Speed; invulnerableStats.Add("Speed"); } if(((aFlag&EMonsterStat.Support)==EMonsterStat.Support)&&((EMonsterStat.Support&this.invulnerableToChanges)==0)) { invulnerableToChanges = invulnerableToChanges | EMonsterStat.Support; invulnerableStats.Add("Support"); } if(invulnerableStats.size>0) { if(invulnerableStats.size==8) { this.doCommentaryMessage(this.name+" Became Invulnerable to All Stat Damages",ECommentaryMessageType.StandardMessage); } else { string s = createStatChangeString(invulnerableStats); this.doCommentaryMessage(this.name+" Became Invulnerable to "+s+" Changes",ECommentaryMessageType.StandardMessage); } return true; } return false; }
public MoveLibItem(MoveDataRow aInitData) { this._id = aInitData._ID; this._name = aInitData._MoveName; this._moveSpeedMultiplier = aInitData._MoveSpeedMultiplier; switch (aInitData._PowerApplicationType) { case("Normal"):this._powerApplicationType = EPowerApplicationTypes.Normal;break; case("Power is HP"): this._powerApplicationType = EPowerApplicationTypes.PowerIsHP;break; case("Power is Percentage of HP"): this._powerApplicationType = EPowerApplicationTypes.PowerIsPercentOfHP;break; } this._description = aInitData._Description; oneHitKillInvulnerable = aInitData._AddsOneHitKOInvulnerability; decisiveBlowsImmunity = aInitData._DecisiveBlowsImmunity; this._elementalType = ElementalLibrary.REF.getElement (aInitData._ElementalType); switch (aInitData._MeleeRangedStatus) { case("Melee"):this._meleeRangedStatus = ERangedStatus.Melee;break; case("Ranged"):this._meleeRangedStatus = ERangedStatus.Ranged;break; } this._effort = aInitData._Effort; this._power = aInitData._Power; this._splashpercent = aInitData._SplashPercent; cameraShake = aInitData._CameraShake; switch (aInitData._SplashRange) { case("Hit 1 Only"):this._splashRange = ESplashRange.Hit1Only;break; case("Hit All"):this._splashRange = ESplashRange.HitAll;break; case("Splash Range 1"):this._splashRange = ESplashRange.SplashRange1;break; case("Boost Me"):this._splashRange = ESplashRange.BoostMe;break; case("Boost 1"):this._splashRange = ESplashRange.Boost1;break; case("Boost 1 And Me"):this._splashRange = ESplashRange.Boost1AndMe;break; case("Boost All"):this._splashRange = ESplashRange.BoostAll;break; case("Boost 2"):this._splashRange = ESplashRange.Boost2;break; case("Boost whole Field"):this._splashRange = ESplashRange.BoostWholeField;break; case("Random Opponent"):this._splashRange = ESplashRange.RandomOpponent;break; } this._accuracy = aInitData._Accuracy; this._particlesAnimation = MovesAnimationLib.REF.getAnimation(aInitData._AttackParticlesAnimation); this._hitParticlesAnimation = MovesAnimationLib.REF.getAnimation(aInitData._AttackParticlesAnimationHit); this._attackMecanim = aInitData._AttackMecanim; this._hitMecanim = aInitData._HitMecanim; this._paralyzePercent = aInitData._ParalyzePercent; this._sleepPercent = aInitData._SleepPercent; this._poisonPercent = aInitData._PoisonPercent; this._freezePercent = aInitData._FreezePercent; this._flinchPercent = aInitData._FlinchPercent; this._confusionPercent = aInitData._ConfusionPercent; this._burnPercent = aInitData._BurnPercent; this._rangeAttackMultiplier = aInitData._RangeAttackMultiplier; this._meleeAttackMultiplier = aInitData._MeleeAttackMultiplier; this._rangeDefenseMultiplier = aInitData._RangeDefenseMultiplier; this._meleeDefenseMultiplier = aInitData._MeleeDefenseMultiplier; this._speedStatMultiplier = aInitData._SpeedStatMultiplier; this.agilityMultiplier = aInitData._AgilityMultiplier; this._accuracyMultiplier = aInitData._AccuracyMultiplier; this._minHitsPerTurn = aInitData._MinHitsPerTurn; this._maxHitsPerTurn = aInitData._MaxHitsPerTurn; this._minTurns = aInitData._MinTurns; this._maxTurns = aInitData._MaxTurns; this._effectsDuration = aInitData._EffectsDuration; this._criticalHitChance = aInitData._CriticalHitChance; this.powerOnlyIfTheseStatusEffects = (EStatusEffects) aInitData._OnlyApplyPowerIfTheirStatusEffect; switch (aInitData._DamageDistribution) { case("Standard"):default:this._damageDistribution = EDamageDistributionTypes.Standard;break; } this._addsVulnerability = ElementalLibrary.REF.getElement (aInitData._AddVulnerabilityType); this._changeIfIHaveStatusEffects = aInitData._IfMyStatusEffect; this._changeToThisIfIHaveStatusEffects = aInitData._DoAlternativeMove; this._changeIfTheyHaveStatusEffects = aInitData._IfTheirStatusEffect; this._changeToThisIfIHaveStatusEffects = aInitData._DoAlternativeMove; this._maxUnlockLevel = (byte) aInitData._MaxUnlockLevel; this._chanceOfAddVulnerability = aInitData._PercentChangeOfVulnerability; this._addsInvulnerabilityStatTo = (EMonsterStat) aInitData._AddInvulnerabilityToStatChange; this._addsInvulnerabilityToStatus = (EStatusEffects) aInitData._AddInvulnerabilityToStatus; this.isPassiveEffect = aInitData._IsPassiveEffect; this.decisiveBlowsChangeMultiplier = aInitData._DecisiveBlowsChanceMultiplier; _selfHitPercent = aInitData._HitMyselfWithThisPercentageOfMove; removesWeaknessesTo = aInitData._RemovesWeaknessTo; mirrorStatusEffects = aInitData._MirrorStatusEffects; this.alsoApplyThisString = aInitData._AlsoApplyThisMove; this.percentChanceOfFollowOn = aInitData._PercentChanceOfFollowOn; if(aInitData._Struggle==1) { isStruggleMove = true; } // this.removesWeaknessesTo = aInitData._ // this.agilityMultiplier = aInitData.A }