示例#1
0
 public ItemEntertainmentModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int value, int boreChance, int stacking, string flavor)
     : base(_id, aName, theNames, imageID, flavor)
 {
     Value         = value;
     BoreChance    = boreChance;
     StackingLimit = stacking;
 }
示例#2
0
 public ItemSprayScentModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int sprayQuantity, Odor odor, int strength, string flavor)
     : base(_id, aName, theNames, imageID, flavor, DollPart.LEFT_HAND)
 {
     MaxSprayQuantity = sprayQuantity;
     Odor             = odor;
     Strength         = strength;
 }
示例#3
0
        static internal Gameplay.GameItems.IDs UnloadedVersion(this Gameplay.GameItems.IDs x)
        {
            switch (x)
            {
            case Gameplay.GameItems.IDs.RANGED_ARMY_PISTOL: return(Gameplay.GameItems.IDs.UNLOADED_ARMY_PISTOL);

            case Gameplay.GameItems.IDs.RANGED_ARMY_RIFLE: return(Gameplay.GameItems.IDs.UNLOADED_ARMY_RIFLE);

            case Gameplay.GameItems.IDs.RANGED_HUNTING_CROSSBOW: return(Gameplay.GameItems.IDs.UNLOADED_HUNTING_CROSSBOW);

            case Gameplay.GameItems.IDs.RANGED_HUNTING_RIFLE: return(Gameplay.GameItems.IDs.UNLOADED_HUNTING_RIFLE);

            case Gameplay.GameItems.IDs.RANGED_PISTOL: return(Gameplay.GameItems.IDs.UNLOADED_PISTOL);

            case Gameplay.GameItems.IDs.RANGED_KOLT_REVOLVER: return(Gameplay.GameItems.IDs.UNLOADED_KOLT_REVOLVER);

            case Gameplay.GameItems.IDs.RANGED_PRECISION_RIFLE: return(Gameplay.GameItems.IDs.UNLOADED_PRECISION_RIFLE);

            case Gameplay.GameItems.IDs.RANGED_SHOTGUN: return(Gameplay.GameItems.IDs.UNLOADED_SHOTGUN);

            case Gameplay.GameItems.IDs.UNIQUE_SANTAMAN_SHOTGUN: return(Gameplay.GameItems.IDs.UNLOADED_SANTAMAN_SHOTGUN);

            case Gameplay.GameItems.IDs.UNIQUE_HANS_VON_HANZ_PISTOL: return(Gameplay.GameItems.IDs.UNLOADED_HANS_VON_HANZ_PISTOL);

            default: throw new ArgumentOutOfRangeException(nameof(x), x.ToString());
            }
        }
示例#4
0
 public ItemExplosiveModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int fuseDelay, BlastAttack attack, string blastImageID, string flavor)
     : base(_id, aName, theNames, imageID, flavor, DollPart.RIGHT_HAND)
 {
     FuseDelay  = fuseDelay;
     m_Attack   = attack;
     BlastImage = blastImageID;
 }
示例#5
0
 public ItemTrapModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int stackLimit, int triggerChance, int damage, bool dropActivate, bool useToActivate, bool IsOneTimeUse, int breakChance, int blockChance, int breakChanceWhenEscape, bool IsNoisy, string noiseName, bool IsFlammable, string flavor)
     : base(_id, aName, theNames, imageID, flavor)
 {
     if (stackLimit > 1)
     {
         StackingLimit = stackLimit;
     }
     TriggerChance         = triggerChance;
     Damage                = damage;
     BreakChance           = breakChance;
     BlockChance           = blockChance;
     BreakChanceWhenEscape = breakChanceWhenEscape;
     if (dropActivate)
     {
         m_Flags |= Flags.DROP_ACTIVATE;
     }
     if (useToActivate)
     {
         m_Flags |= Flags.USE_TO_ACTIVATE;
     }
     if (IsNoisy)
     {
         m_Flags  |= Flags.IS_NOISY;
         NoiseName = noiseName;
     }
     if (IsOneTimeUse)
     {
         m_Flags |= Flags.IS_ONE_TIME_USE;
     }
     if (IsFlammable)
     {
         m_Flags |= Flags.IS_FLAMMABLE;
     }
 }
示例#6
0
 public ItemBodyArmorModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int protection_hit, int protection_shot, int encumbrance, int weight, string flavor)
     : base(_id, aName, theNames, imageID, flavor, DollPart.TORSO)
 {
     Protection_Hit  = protection_hit;
     Protection_Shot = protection_shot;
     Encumbrance     = encumbrance;
     Weight          = weight;
 }
示例#7
0
 static public ItemRangedWeapon make(Gameplay.GameItems.IDs x)
 {
     if (Data.Models.Items[(int)x] is ItemRangedWeaponModel rw_model)
     {
         return(new ItemRangedWeapon(rw_model));
     }
     throw new ArgumentOutOfRangeException(nameof(x), x, "not a ranged weapon");
 }
示例#8
0
 public ItemMeleeWeaponModel(Gameplay.GameItems.IDs _id, string aName, string imageID, Attack attack, string flavor, int bash, float build, int stackingLimit, bool fragile)
     : base(_id, aName, aName.Plural(true), imageID, attack, flavor, false)
 {
     StackingLimit       = stackingLimit;
     IsFragile           = fragile;
     ToolBashDamageBonus = bash;
     ToolBuildBonus      = build;
 }
        public ItemGrenadePrimedModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, ItemGrenadeModel grenadeModel)
            : base(_id, aName, theNames, imageID, grenadeModel.FuseDelay, grenadeModel.BlastAttack, grenadeModel.BlastImage, grenadeModel.FlavorDescription)
        {
            GrenadeModel = grenadeModel
#if DEBUG
                           ?? throw new ArgumentNullException(nameof(grenadeModel))
#endif
            ;
        }
示例#10
0
 public TakeFromLocation(Actor actor, Gameplay.GameItems.IDs id, Location loc) : base(actor)
 {
     if (!Map.Canonical(ref loc))
     {
         throw new ArgumentOutOfRangeException(nameof(loc), loc, "has no canonical form");
     }
     m_ID  = id;
     m_loc = loc;
 }
示例#11
0
 public TakeFromLocation_memory(Gameplay.GameItems.IDs id, Location loc, Zaimoni.Data.Ary2Dictionary <Location, Gameplay.GameItems.IDs, int> items)
 {
     if (!Map.Canonical(ref loc))
     {
         throw new ArgumentOutOfRangeException(nameof(loc), loc, "has no canonical form");
     }
     m_ID     = id;
     m_loc    = loc;
     m_memory = items;
 }
示例#12
0
 public ItemModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, string flavor = "", DollPart part = DollPart.NONE, bool no_autoequip = false)
 {
     ID                = _id;
     SingleName        = aName;
     PluralName        = theNames;
     ImageID           = imageID;
     FlavorDescription = flavor;
     // if we are not equippable, then there is no operational difference whether we auto-equip or not.
     DontAutoEquip = DollPart.NONE == (EquipmentPart = part) || no_autoequip;
 }
示例#13
0
        public ActionUse(Actor actor, Gameplay.GameItems.IDs it) : base(actor)
        {
#if DEBUG
            if (!(Gameplay.GameItems.From(it).create() is UsableItem))
            {
                throw new ArgumentNullException(nameof(it));
            }
#endif
            m_ID = it;
        }
示例#14
0
 public Item?GetFirst(Gameplay.GameItems.IDs id)
 {
     foreach (Item it in m_Items)
     {
         if (id == it.Model.ID)
         {
             return(it);
         }
     }
     return(null);
 }
示例#15
0
        public ActionUse(Actor actor, Gameplay.GameItems.IDs it)
            : base(actor)
        {
#if DEBUG
            if (!RogueGame.IsUsable(Models.Items[(int)it]))
            {
                throw new ArgumentNullException(nameof(it));
            }
#endif
            m_ID = it;
        }
示例#16
0
 protected ItemWeaponModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, Attack attack, string flavor, bool is_artifact)
     : base(_id, aName, theNames, imageID, flavor, DollPart.RIGHT_HAND)
 {
     m_Attack = attack;
     if (is_artifact)
     {
         IsProper      = true;
         IsUnbreakable = true;
         IsUnique      = true;
     }
 }
示例#17
0
        public ItemSprayPaintModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int paintQuantity, string tagImageID, string flavor)
            : base(_id, aName, theNames, imageID, flavor, DollPart.LEFT_HAND)
        {
#if DEBUG
            if (string.IsNullOrEmpty(tagImageID))
            {
                throw new ArgumentNullException(nameof(tagImageID));
            }
#endif
            MaxPaintQuantity = paintQuantity;
            TagImageID       = tagImageID;
        }
示例#18
0
文件: Item.cs 项目: zaimoni/RSRevived
        public Item(ItemModel model, int qty = 1)
        {
#if DEBUG
            if (0 >= qty)
            {
                throw new ArgumentOutOfRangeException(nameof(qty));     // reddit/Brasz 2020-10-23
            }
#endif
            m_ModelID    = model.ID;
            m_Quantity   = qty;
            EquippedPart = DollPart.NONE;
        }
示例#19
0
        public ItemLightModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, short fovBonus, int maxBatteries, string outOfBatteriesImageID, string flavor)
            : base(_id, aName, theNames, imageID, flavor, DollPart.LEFT_HAND, true)
        {
#if DEBUG
            if (string.IsNullOrEmpty(outOfBatteriesImageID))
            {
                throw new ArgumentNullException(nameof(outOfBatteriesImageID));
            }
#endif
            FovBonus              = fovBonus;
            MaxBatteries          = maxBatteries;
            OutOfBatteriesImageID = outOfBatteriesImageID;
        }
示例#20
0
 public ItemMedicineModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int healing, int staminaBoost, int sleepBoost, int infectionCure, int sanityCure, string flavor, int stackingLimit = 0)
     : base(_id, aName, theNames, imageID, flavor)
 {
     Healing       = healing;
     StaminaBoost  = staminaBoost;
     SleepBoost    = sleepBoost;
     InfectionCure = infectionCure;
     SanityCure    = sanityCure;
     if (1 < stackingLimit)
     {
         IsPlural      = true;
         StackingLimit = stackingLimit;
     }
 }
示例#21
0
        static public ItemAmmo make(Gameplay.GameItems.IDs x)
        {
            ItemModel tmp = Models.Items[(int)x];

            if (tmp is ItemRangedWeaponModel rw_model)
            {
                tmp = Models.Items[(int)(rw_model.AmmoType) + (int)(Gameplay.GameItems.IDs.AMMO_LIGHT_PISTOL)];                                   // use the ammo of the ranged weapon instead
            }
            if (tmp is ItemAmmoModel am_model)
            {
                return(new ItemAmmo(am_model));
            }
            throw new ArgumentOutOfRangeException(nameof(x), x, "not ammunition or ranged weapon");
        }
示例#22
0
 public ItemFoodModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int nutrition, int bestBeforeDays, int stackingLimit, string flavor)
     : base(_id, aName, theNames, imageID, flavor)
 {
     Nutrition = nutrition;
     if (bestBeforeDays < 0)
     {
         IsPerishable = false;
     }
     else
     {
         IsPerishable   = true;
         BestBeforeDays = bestBeforeDays;
     }
     IsPlural      = (aName == theNames);
     StackingLimit = stackingLimit;
 }
示例#23
0
 public ItemTrackerModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, TrackingFlags tracking, int maxBatteries, DollPart part, string flavor)
     : base(_id, aName, theNames, imageID, flavor, part, true)
 {
     Tracking     = tracking;
     MaxBatteries = maxBatteries;
 }
示例#24
0
 public ItemRangedWeaponModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, Attack attack, int maxAmmo, AmmoType ammoType, string flavor, bool is_artifact = false)
     : base(_id, aName, theNames, imageID, attack, flavor, is_artifact)
 {
     MaxAmmo  = maxAmmo;
     AmmoType = ammoType;
 }
示例#25
0
文件: Item.cs 项目: zaimoni/RSRevived
 public Item_s(Gameplay.GameItems.IDs id, int qty, uint flags = 0)
 {
     ModelID = id;
     QtyLike = qty;
     Flags   = flags;
 }
示例#26
0
 public ItemBarricadeMaterialModel(Gameplay.GameItems.IDs _id, string aName, string theNames, string imageID, int barricadingValue, int stackingLimit, string flavor)
     : base(_id, aName, theNames, imageID, flavor)
 {
     BarricadingValue = barricadingValue;
     StackingLimit    = stackingLimit;
 }
示例#27
0
 public RadioFaction(GameFactions.IDs faction, Gameplay.GameItems.IDs radio)
 {
     FactionID = faction;
     RadioID   = radio;
 }
示例#28
0
 public ItemRangedWeapon?GetCompatibleRangedWeapon(Gameplay.GameItems.IDs am)
 {
     return(GetCompatibleRangedWeapon(Gameplay.GameItems.From(am) as ItemAmmoModel));
 }
示例#29
0
 public Dictionary <Location, int>?WhereIs(Gameplay.GameItems.IDs x)
 {
     return(ItemMemory?.WhereIs(x));
 }
示例#30
0
 public bool Has(Gameplay.GameItems.IDs id)
 {
     return(null != GetFirst(id));
 }