Ejemplo n.º 1
0
        void IncreaseLuckBonus(RulebookEvent evt, StatType stat)
        {
            int luck = GetLuckBonus(evt, stat);

            if (luck > 0)
            {
                var mod = Owner.Stats.GetStat(stat).AddModifier(luck + 1, this, ModifierDescriptor.Luck);
                evt.AddTemporaryModifier(mod);
            }
        }
Ejemplo n.º 2
0
        int GetLuckBonus(RulebookEvent evt, StatType stat)
        {
            var value = Owner.Stats.GetStat(stat);

            if (value.ContainsModifier(ModifierDescriptor.Luck))
            {
                return(value.GetDescriptorBonus(ModifierDescriptor.Luck));
            }
            return(0);
        }
Ejemplo n.º 3
0
        static void Postfix(EntityDataBase sourceEntity, UnitEntityData targetUnit, RulebookEvent evt, ref bool __result)
        {
            if (__result)
            {
                return;
            }

            UnitEntityData unit = sourceEntity as UnitEntityData;

            if (unit == null || unit.IsAlly(targetUnit) || evt != null)
            {
                return;
            }

            __result = !targetUnit.Ensure <UnitPartSanctuary>().canBeAttackedBy(unit);
        }
Ejemplo n.º 4
0
 static void Postfix(ProjectileController __instance, UnitEntityData launcher, TargetWrapper target, BlueprintProjectile projectileBlueprint, RuleAttackRoll attackRoll, RulebookEvent ruleOnHit, Projectile __result)
 {
     if (projectileBlueprint == thrown_weapon_proj)
     {
         var        weapon     = attackRoll.Weapon;
         GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(weapon.Blueprint.VisualParameters.Model, __result.View.transform);
         gameObject.transform.localPosition = Vector3.zero;
         gameObject.transform.localRotation = Quaternion.Euler(90f, 0f, 0f);
         gameObject.transform.localScale    = Vector3.one;
         __result.MaxRange = weapon.AttackRange.Meters;
     }
 }