Esempio n. 1
0
 public EquippedDictionaryProxy(CharacterModel characterModel)
 {
     CharacterModel = characterModel;
 }
Esempio n. 2
0
 public static ShieldParams ShieldParams(CharacterModel characterModel) => ShieldParamsImpl(characterModel);
Esempio n. 3
0
 public static int AdjustedSellPrice(CharacterModel character, float value) => AdjustedSellPriceImpl(character, value);
Esempio n. 4
0
 public static float MaxHealth(CharacterModel characterModel) => MaxHealthImpl(characterModel);
Esempio n. 5
0
 public static float MaxEnergy(CharacterModel characterModel) => MaxEnergyImpl(characterModel);
Esempio n. 6
0
 public static int LevelsForExperience(CharacterModel character) => LevelsForExperienceImpl(character);
Esempio n. 7
0
 public static int XPAfterMaxLevel(CharacterModel character) => XPAfterMaxLevelImpl(character);
Esempio n. 8
0
 /// <summary>
 /// Calculates damage to shields, armor, and character given damage and a character model
 /// </summary>
 public static (float damageToShields, float damageToArmor, float damageToCharacter) DamageRatio(float damage, float pierce, CharacterModel character) => DamageRatioImpl(damage, pierce, character);
Esempio n. 9
0
 public static int PotentialPointsForLevel(int newLevel, CharacterModel character) => PotentialPointsForLevelImpl(newLevel, character);
Esempio n. 10
0
 public static float MaxMagic(CharacterModel characterModel) => MaxMagicImpl(characterModel);
Esempio n. 11
0
 /// <summary>
 /// Calculates damage to shields, armor, and character given damage and a character model
 /// </summary>
 public static (float damageToShields, float damageToArmor, float damageToCharacter) DamageRatio(ActorHitInfo hitInfo, CharacterModel character) => DamageRatioImpl(hitInfo, character);
Esempio n. 12
0
        public override AidItemApplyResult Apply(CharacterModel target, InventoryItemInstance itemInstance)
        {
            StringBuilder       messageBuilder = new StringBuilder();
            AidItemScriptResult scriptResult   = new AidItemScriptResult()
            {
                ReturnSuccess = true, ContinueApply = true, ConsumeItem = !CheckFlag(ItemFlag.AidDoNotConsume), ShowMessage = !CheckFlag(ItemFlag.AidNoMessage)
            };

            //apply script
            if (!string.IsNullOrEmpty(Scripts.OnApply))
            {
                scriptResult = ApplyScript(this, target, itemInstance);
            }

            if (scriptResult.ContinueApply)
            {
                //apply base
                if (AType != AidType.None)
                {
                    float amountRestored = ApplyBase(this, target);
                    messageBuilder.AppendLine(base.GetSuccessMessage(amountRestored));
                }

                //apply nodes
                if (RestoreNodes != null && RestoreNodes.Count > 0)
                {
                    foreach (var restoreNode in RestoreNodes)
                    {
                        if (!restoreNode.AutoApply)
                        {
                            continue;
                        }
                        float amountRestored = ApplyNode(restoreNode.AType, restoreNode.RType, restoreNode.Amount, target);
                        messageBuilder.AppendLine($"Restored {(int)amountRestored} {restoreNode.AType.ToString()}!");
                    }
                }
            }

            //concat messages
            string message;

            if (scriptResult.MessageOverride != null)
            {
                if (CheckFlag(ItemFlag.ComboAidKeepAllMessages))
                {
                    message = scriptResult.MessageOverride + '\n' + messageBuilder.ToString();
                }
                else
                {
                    message = scriptResult.MessageOverride;
                }
            }
            else
            {
                message = messageBuilder.ToString();
            }

            return(new AidItemApplyResult()
            {
                ConsumeItem = scriptResult.ConsumeItem, Message = message, ShowMessage = scriptResult.ShowMessage, Success = scriptResult.ReturnSuccess
            });
        }
Esempio n. 13
0
        protected static float ApplyNode(AidType aType, RestoreType rType, float amount, CharacterModel player)
        {
            float amountRestored = 0;

            //this is super gross but I will improve it later
            switch (aType)
            {
            case AidType.Health:
            {
                switch (rType)
                {
                case RestoreType.Add:
                    float oldHealth = player.Health;
                    player.Health  = Math.Min(player.Health + amount, player.DerivedStats.MaxHealth);
                    amountRestored = player.Health - oldHealth;
                    break;

                case RestoreType.Boost:
                    player.Health += amount;
                    amountRestored = amount;
                    break;

                case RestoreType.Override:
                    player.Health  = amount;
                    amountRestored = amount;
                    break;

                default:
                    break;
                }
            }
            break;

            case AidType.Energy:
            {
                switch (rType)
                {
                case RestoreType.Add:
                    float oldEnergy = player.Energy;
                    player.Energy  = Math.Min(player.Energy + amount, player.DerivedStats.MaxEnergy);
                    amountRestored = player.Energy - oldEnergy;
                    break;

                case RestoreType.Boost:
                    player.Energy += amount;
                    amountRestored = amount;
                    break;

                case RestoreType.Override:
                    player.Energy  = amount;
                    amountRestored = amount;
                    break;

                default:
                    break;
                }
            }
            break;

            case AidType.Magic:
            {
                switch (rType)
                {
                case RestoreType.Add:
                    float oldMagic = player.Magic;
                    player.Magic   = Math.Min(player.Magic + amount, player.DerivedStats.MaxMagic);
                    amountRestored = player.Magic - oldMagic;
                    break;

                case RestoreType.Boost:
                    player.Magic  += amount;
                    amountRestored = amount;
                    break;

                case RestoreType.Override:
                    player.Magic   = amount;
                    amountRestored = amount;
                    break;

                default:
                    break;
                }
            }
            break;

            case AidType.Shields:
            {
                switch (rType)
                {
                case RestoreType.Add:
                    float oldShields = player.Shields;
                    player.Shields = Math.Min(player.Shields + amount, player.DerivedStats.ShieldParams.MaxShields);
                    amountRestored = player.Shields - oldShields;
                    break;

                case RestoreType.Boost:
                    player.Shields += amount;
                    amountRestored  = amount;
                    break;

                case RestoreType.Override:
                    player.Shields = amount;
                    amountRestored = amount;
                    break;

                default:
                    break;
                }
            }
            break;
            }

            return(amountRestored);
        }
Esempio n. 14
0
 protected static float ApplyBase(AidItemModel item, CharacterModel player)
 {
     return(ApplyNode(item.AType, item.RType, item.Amount, player));
 }