コード例 #1
0
        public float GetCurrentBonusMultiplierNew(global::CharacterStats stats, GenericAbility abilityOrigin)
        {
            if (stats == null)
            {
                return(1f);
            }
            float bonus = 0f;

            if (IEModOptions.NPCDispositionFix || (GameState.s_playerCharacter != null && stats.gameObject == GameState.s_playerCharacter.gameObject))             // added ((Mod_GameOptions_GameMode)GameState.Mode).NPCDispositionFix ||
            {
                float single = 1f;
                if (abilityOrigin != null)
                {
                    single = single * abilityOrigin.GatherAbilityModProduct(AbilityMod.AbilityModType.NegativeReligiousTraitMultiplier);
                }
                if (stats.CharacterClass == CharacterStats.Class.Priest)
                {
                    global::Religion.DeityData deityDatum = this.FindDeityData(stats.Deity);
                    if (deityDatum != null)
                    {
                        bonus = bonus + this.GetBonus(deityDatum.PositiveTrait[0], this.PositiveTraitBonus);
                        bonus = bonus + this.GetBonus(deityDatum.PositiveTrait[1], this.PositiveTraitBonus);
                        bonus = bonus + this.GetBonus(deityDatum.NegativeTrait[0], this.NegativeTraitBonus) * single;
                        bonus = bonus + this.GetBonus(deityDatum.NegativeTrait[1], this.NegativeTraitBonus) * single;
                    }
                }
                else if (stats.CharacterClass == CharacterStats.Class.Paladin)
                {
                    global::Religion.PaladinOrderData paladinOrderDatum = this.FindPaladinOrderData(stats.PaladinOrder);
                    if (paladinOrderDatum != null)
                    {
                        /* patching in dis/favored dispositions for Pallegina's order */
                        if (stats.PaladinOrder == PaladinOrder.FrermasMesCancSuolias)
                        {
                            var favored1    = IEModOptions.PalleginaFavored1;
                            var favored2    = IEModOptions.PalleginaFavored2;
                            var disfavored1 = IEModOptions.PalleginaDisfavored1;
                            var disfavored2 = IEModOptions.PalleginaDisfavored2;

                            paladinOrderDatum.PositiveTrait    = new Disposition.Axis[2];
                            paladinOrderDatum.PositiveTrait[0] = favored1;
                            paladinOrderDatum.PositiveTrait[1] = favored2;
                            paladinOrderDatum.NegativeTrait    = new Disposition.Axis[2];
                            paladinOrderDatum.NegativeTrait[0] = disfavored1;
                            paladinOrderDatum.NegativeTrait[1] = disfavored2;
                        }
                        /**************************************************************************************/

                        bonus = bonus + this.GetBonus(paladinOrderDatum.PositiveTrait[0], this.PositiveTraitBonus);
                        bonus = bonus + this.GetBonus(paladinOrderDatum.PositiveTrait[1], this.PositiveTraitBonus);
                        bonus = bonus + this.GetBonus(paladinOrderDatum.NegativeTrait[0], this.NegativeTraitBonus) * single;
                        bonus = bonus + this.GetBonus(paladinOrderDatum.NegativeTrait[1], this.NegativeTraitBonus) * single;
                    }
                }
            }
            bonus = bonus + 1f;
            return(bonus);
        }
コード例 #2
0
ファイル: Mod_Religion.cs プロジェクト: Bigtuna00/IEMod.pw
		public float GetCurrentBonusMultiplierNew(CharacterStats stats, GenericAbility abilityOrigin)
		{
			if (stats == null)
			{
				return 1f;
			}
			float bonus = 0f;
			if (IEModOptions.NPCDispositionFix || (GameState.s_playerCharacter != null && stats.gameObject == GameState.s_playerCharacter.gameObject)) // added ((Mod_GameOptions_GameMode)GameState.Mode).NPCDispositionFix || 
			{
				float single = 1f;
				if (abilityOrigin != null)
				{
					single = single * abilityOrigin.GatherAbilityModProduct(AbilityMod.AbilityModType.NegativeReligiousTraitMultiplier);
				}
				if (stats.CharacterClass == CharacterStats.Class.Priest)
				{
					global::Religion.DeityData deityDatum = this.FindDeityData(stats.Deity);
					if (deityDatum != null)
					{
						bonus = bonus + this.GetBonus(deityDatum.PositiveTrait[0], this.PositiveTraitBonus);
						bonus = bonus + this.GetBonus(deityDatum.PositiveTrait[1], this.PositiveTraitBonus);
						bonus = bonus + this.GetBonus(deityDatum.NegativeTrait[0], this.NegativeTraitBonus) * single;
						bonus = bonus + this.GetBonus(deityDatum.NegativeTrait[1], this.NegativeTraitBonus) * single;
					}
				}
				else if (stats.CharacterClass == CharacterStats.Class.Paladin)
				{
					global::Religion.PaladinOrderData paladinOrderDatum = this.FindPaladinOrderData(stats.PaladinOrder);
					if (paladinOrderDatum != null)
					{
						/* patching in dis/favored dispositions for Pallegina's order */
						if (stats.PaladinOrder == PaladinOrder.FrermasMesCancSuolias)
						{
							var favored1 = IEModOptions.PalleginaFavored1;
							var favored2 = IEModOptions.PalleginaFavored2;
							var disfavored1 = IEModOptions.PalleginaDisfavored1;
							var disfavored2 = IEModOptions.PalleginaDisfavored2;

							paladinOrderDatum.PositiveTrait = new Disposition.Axis[2];
							paladinOrderDatum.PositiveTrait[0] = favored1;
							paladinOrderDatum.PositiveTrait[1] = favored2;
							paladinOrderDatum.NegativeTrait = new Disposition.Axis[2];
							paladinOrderDatum.NegativeTrait[0] = disfavored1;
							paladinOrderDatum.NegativeTrait[1] = disfavored2;
						}
						/**************************************************************************************/

						bonus = bonus + this.GetBonus(paladinOrderDatum.PositiveTrait[0], this.PositiveTraitBonus);
						bonus = bonus + this.GetBonus(paladinOrderDatum.PositiveTrait[1], this.PositiveTraitBonus);
						bonus = bonus + this.GetBonus(paladinOrderDatum.NegativeTrait[0], this.NegativeTraitBonus) * single;
						bonus = bonus + this.GetBonus(paladinOrderDatum.NegativeTrait[1], this.NegativeTraitBonus) * single;
					}
				}
			}
			bonus = bonus + 1f;
			return bonus;
		}