예제 #1
0
        public void Execute()
        {
            InventoryModel inventory = AmbitionApp.GetModel <InventoryModel>();
            // Update the "Last Equipped" outfit in the player's inventory

            OutfitVO outfit = inventory.GetEquipped(ItemConsts.OUTFIT) as OutfitVO;

            if (outfit != null)
            {
                outfit.Novelty -= inventory.NoveltyDamage;
            }

            inventory.Equipped[ItemConsts.LAST_OUTFIT] = outfit;
            // Reset the player's equipped items
            inventory.Equipped.Remove(ItemConsts.OUTFIT);
            inventory.Equipped.Remove(ItemConsts.ACCESSORY);
        }
예제 #2
0
        public void Execute(int intoxication)
        {
            PartyModel model = AmbitionApp.GetModel <PartyModel>();
            PartyVO    party = model.Party;

            if (intoxication >= party.MaxIntoxication)
            {
                InventoryModel inventory = AmbitionApp.GetModel <InventoryModel>();
                ItemVO         item;
                //Determine Random Effect
                switch (Util.RNG.Generate(0, 10))
                {
                case 0:
                    model.Party.Rewards.Add(new CommodityVO(CommodityType.Reputation, -Util.RNG.Generate(20, 51)));
                    break;

                case 1:
                    model.Party.Rewards.Add(new CommodityVO(CommodityType.Reputation, party.Faction, -Util.RNG.Generate(20, 51)));
                    break;

                // Outfit penalized
                case 2:
                    item = inventory.GetEquipped(ItemConsts.OUTFIT);
                    if (item is OutfitVO)
                    {
                        ((OutfitVO)item).Novelty -= Util.RNG.Generate(20, 51);
                    }
                    break;

                // Outfit Ruined
                case 3:
                    item = inventory.GetEquipped(ItemConsts.OUTFIT);
                    if (item is OutfitVO)
                    {
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Item, item.Name, -1));
                    }
                    break;

                // Accessory Lost
                case 4:
                    item = inventory.GetEquipped(ItemConsts.ACCESSORY);
                    if (item != null)
                    {
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Item, item.Name, -1));
                    }
                    else
                    {
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Livre, -Util.RNG.Generate(30, 61)));
                    }
                    break;

                // Livre Lost
                case 5:
                    model.Party.Rewards.Add(new CommodityVO(CommodityType.Livre, -Util.RNG.Generate(30, 61)));
                    break;

                // Enemy made
                case 6:
                    model.Party.Rewards.Add(new CommodityVO(CommodityType.Enemy, party.Faction));
                    break;

                // Forgot gossip
                case 7:
                    model.Party.Rewards.RemoveAll(r => r.Type == CommodityType.Gossip);
                    {
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Enemy, party.Faction));
                    }
                    break;

                case 8:
                    switch (Util.RNG.Generate(0, 6))
                    {
                    case 1:
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Reputation, Util.RNG.Generate(20, 51)));
                        break;

                    case 2:
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Reputation, party.Faction, Util.RNG.Generate(20, 51)));
                        break;

                    case 3:
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Livre, Util.RNG.Generate(30, 61)));
                        break;

                    case 4:
                        model.Party.Rewards.Add(new CommodityVO(CommodityType.Gossip, party.Faction, 1));
                        break;

                    default:
                        EnemyVO enemy = Util.RNG.TakeRandom(party.Enemies);
                        if (enemy != null)
                        {
                            model.Party.Rewards.Add(new CommodityVO(CommodityType.Enemy, enemy.Name, -1));
                        }
                        else
                        {
                            model.Party.Rewards.Add(new CommodityVO(CommodityType.Gossip, party.Faction, 1));
                        }
                        break;
                    }
                    break;
                }
            }
        }