Esempio n. 1
0
 public ItemBasis this[ItemBasis item]
 {
     get {
         if (!inventory.Contains(item)) return null;
         return this[inventory.IndexOf(item)]; }
     //set { /* set the specified index to value here */ }
 }
Esempio n. 2
0
 public ItemUsedResult(ItemBasis item, MyCharacterController owner, bool throwhit,params ObjectEntity[] targets)
     : base(owner)
 {
     Item = item;
     Targets = targets;
     ThrowHit = throwhit;
 }
Esempio n. 3
0
 public override bool putinItem(ItemBasis item)
 {
     bool success = base.putinItem(item);
     if (success) {
         Inventory[Inventory.ItemCount - 1].IsCursed = false;
     }
     return success;
 }
Esempio n. 4
0
 //public AppraisePot(int usecount) : base(basisparam) { }
 public override bool putinItem(ItemBasis item)
 {
     var success = base.putinItem(item);
     if (success) {
         AppraiseBook.appraise(item, false, false);
     }
     return success;
 }
Esempio n. 5
0
 public override bool putinItem(ItemBasis item)
 {
     if (base.putinItem(item)) {
         Inventory[Inventory.ItemCount - 1].IsCursed = true;
         return true;
     }
     return false;
 }
 public ExertionItemEffect(MyCharacterController user,ItemBasis item ,bool throwhit,ObjectEntity[] targets,params ExeritionOption[] options)
     : base(user)
 {
     Targets = new List<ObjectEntity>(targets);
     Item = item;
     ThrowHit = throwhit;
     Options = options==null?new ExeritionOption[] { }:options;
 }
 public ItemUsePreActionResult(ItemBasis item,MyCharacterController owner,params ObjectEntity[] targets)
     : base(owner)
 {
     //GameController.PlayingLogger.addLogFormat("Ts:{0}", targets.Length);
     Item = item;
     Targets = targets;
     Animations = new EffectAnimationEntity[] { };
     Options = new List<ExertionItemEffect.ExeritionOption>();
 }
Esempio n. 8
0
    public override bool putinItem(ItemBasis item)
    {
        var success = base.putinItem(item);

        if (success) {
            Inventory.remove(item);
            Inventory.reduceInventory(1);
        }

        return success;
    }
Esempio n. 9
0
 public override bool putinItem(ItemBasis item)
 {
     if (HasFreeCapcity)
     {
         User.heal(User.Parameter.MaxHP);
         AntiPoisonPotion.curePoison(User);
         reduceInventory(1);
         return false;
     }
     else {
         return base.putinItem(item);
     }
 }
Esempio n. 10
0
    public override bool putinItem(ItemBasis item)
    {
        var success = base.putinItem(item);
        if (success) {
            var find = Inventory.FindAll(i => !(i is MoneyBasis));
            find.ForEach( i => {
                var money = new Money(item.SellingPrice);
                Inventory.trade(i, money);
            });
        }

        return success;
    }
 public InPotSelectedItemUseMenu(ItemBasis selecteditem,PlayerController owner,Vector2 pos, PotBasis pot, List<ItemBasis> multiselecteditems, SelectedItemUseMenu.InventoryMode mode)
     : base(selecteditem,owner,pos,mode,true)
 {
     Pot = pot;
     Window.ViewMode = !pot.BasisParameter.RemovableItem;
     MultiSelectedItems = multiselecteditems;
     foreach (ItemBasis item in MultiSelectedItems)
     {
         Debug.Log("MultiSelected: " + item);
     }
     setMenuLabels();
     MenuName = "InPotSelectedItemUse";
 }
Esempio n. 12
0
 public override bool putinItem(ItemBasis item)
 {
     var warehouse = GameController.MainPlayer.Parameter.WareHouseInventory;
     if (warehouse.isFreeCapasity(1))
     {
         warehouse.add(item);
         Inventory.reduceInventory(1);
         return true;
     }
     else if (HasFreeCapcity) {
         return base.putinItem(item);
     }
     return false;
 }
 public static ItemEntity instantiateItemEntity(ItemBasis item, Vector2 pos)
 {
     //Debug.Log("Erase in Inventory!"+item.Erase);
     GameObject obj = GameObject.Instantiate(org);
     obj.SetActive(false);
     obj.transform.position = pos;
     ItemEntity ret = obj.GetComponent<ItemEntity>();
     ret.Object = item;
     ret.init();
     obj.SetActive(true);
     obj.transform.parent = GameController.Items;
     //GameController.spawaObject(ret);
     return ret;
 }
Esempio n. 14
0
 public static void appraise(ItemBasis item, bool playsound, bool alreadycorrectlog)
 {
     if (item.CurrentDetectionLevel != DetectionLevel.CORRECT)
     {
         if (playsound) GameController.SoundController.playSE(SoundNameList.SE_Appraise1);
         string beforename = item.Name;
         GameController.DungeonInformation.updateItemDetectionLevel(item.GetType(), ItemBasis.DetectionLevel.CORRECT);
         string aftername = item.Name;
         string str = "なんと、" + beforename + "は" + aftername + "だった!";
         GameController.PlayingLogger.addLog(str);
     }
     else if(alreadycorrectlog){
         GameController.PlayingLogger.addLogFormat("{0} は{0}だ。",item.Name);
     }
 }
 public override bool startOperation(MyCharacterController speaker, MyCharacterController own)
 {
     Message.reset();
     Skip = false;
     var entities = GameController.DungeonInformation.getAllItemsInRoom(Merchant.ShopRoom).FindAll(item => !item.Object.IsCommodity).ToArray();
     Items = new ItemBasis[entities.Length];
     for (int i = 0; i < Items.Length; i++)
     {
         Items[i] = entities[i].Object;
     }
     if (Items.Length == 0 || !(speaker is PlayerController))
     {
         Skip = true;
     }
     else {
         initPaymentMenu(speaker as PlayerController);
     }
     return true;
 }
Esempio n. 16
0
 private bool sameCodeItemComposition(ItemBasis origin, ItemBasis material)
 {
     bool success = false;
     if (origin.Code == ItemCode.SHOTITEM)
     {
         var shotorigin = origin as ShotItemBasis;
         var shotmaterial = material as ShotItemBasis;
         if (shotorigin.isStackable(shotmaterial))
         {
             shotorigin.stack(shotmaterial.StackCount);
         }
         success = true;
     }
     else if (origin.Code == ItemCode.MONEY)
     {
         var moneyorigin = origin as MoneyBasis;
         var moneymaterial = material as MoneyBasis;
         moneyorigin.increaseValue(moneymaterial.Value);
         success = true;
     }
     else if (origin.Code == ItemCode.WEAPON || origin.Code == ItemCode.SHIELD)
     {
         var eqorigin = origin as EquipmentItemBasis;
         var eqmaterial = material as EquipmentItemBasis;
         var addend = eqmaterial.getAllowCompositionAbilities();
         addend.RemoveAll(a => eqorigin.CommpositedAbilities.Contains(a));
         eqorigin.CommpositedAbilities.AddRange(addend);
         eqorigin.addEnhancementPoint(eqmaterial.EnhancementPoint);
         success = true;
     }
     else if (origin.Code == ItemCode.CANE && origin.GetType() == material.GetType()) {
         var caneorigin = origin as CaneBasis;
         var canematerial = material as CaneBasis;
         caneorigin.increaseUseCount(canematerial.RestUseCount);
         success = true;
     }
     //GameController.PlayingLogger.addLogFormat("S:{0}",success);
     return success;
 }
Esempio n. 17
0
    public override bool putinItem(ItemBasis item)
    {
        if (HasFreeCapcity)
        {
            GameController.SoundController.playSE(SoundNameList.Pot_Into);

            var spitem = item as ISpecialAlchemicalItem;
            if (spitem != null && spitem.canExertion())
            {
                Inventory.add(spitem.ResultItem);
            }
            else {
                ItemBasis select = GameController.DungeonInformation.CurrentDungeonParameter.DistributionTable.randomSelectItem();
                select.init();
                Inventory.add(select);
            }

            return true;
        }
        else {
            return base.putinItem(item);
        }
    }
Esempio n. 18
0
    public override bool putinItem(ItemBasis item)
    {
        var success = base.putinItem(item);
        if (success) {
            ItemBasis putinitem = Inventory[Inventory.ItemCount - 1];
            if (putinitem is EquipmentItemBasis || putinitem is MoneyBasis || putinitem is CaneBasis)
            {

                var find = Inventory.FindAll(inv =>
                {
                    //GameController.PlayingLogger.addLogFormat("[{2}]:{0} {1}", inv.Equals(putinitem) , inv == putinitem,Inventory.ItemCount);
                    return inv != putinitem && inv.Code == putinitem.Code;
                });

                if (find.Count != 0)
                {
                    //GameController.PlayingLogger.addLogFormat("[{2}]:{0} {1}", find[0].Equals(putinitem), find[0] == putinitem, find.Count);
                    if (sameCodeItemComposition(find[0], putinitem)) {
                        /*
                        foreach (var invitem in Inventory.toArray()) {
                            GameController.PlayingLogger.addLogFormat("Pot:{0} {1}", invitem.Name,invitem.GetHashCode());
                        }
                        GameController.PlayingLogger.addLogFormat("{0} {1}",putinitem.Name,putinitem.GetHashCode());
                        */
                        Inventory.remove(putinitem);
                        this.reduceInventory(1);
                    }
                }
            }
            else {
            }

        }

        return success;
    }
 public virtual bool pickUpItem(ItemBasis item)
 {
     return Parameter.Inventory.add(item);
 }
 public static ItemEntity enableItemEntity(ItemBasis item, Vector2 pos, bool hastilesetter = false)
 {
     ItemEntity entity = GameController.ItemPool.GetChild(0).GetComponent<ItemEntity>();
     entity.Object = item;
     entity.Object.FiledEntity = entity;
     entity.gameObject.transform.position = pos;
     entity.setActive(true);
     entity.HasTileSetter = hastilesetter;
     GameController.GameActionEvent.spawnObject(entity);
     return entity;
 }
 public static ItemEntity createItemEntity(ItemBasis item, Vector2 pos, bool hastilesetter = false)
 {
     return enableItemEntity(item.Clone(), pos, hastilesetter);
 }
Esempio n. 22
0
 public static ItemInventory create(int size,ItemBasis[] items)
 {
     ItemInventory ret =  new ItemInventory(size);
     ret.add(items);
     return ret;
 }
Esempio n. 23
0
    private void setItemOld()
    {
        var ret = new ItemBasis[12];
        ret[0] = new IronSword();
        (ret[0] as EquipmentItemBasis).init(2);
        ret[1] = new WoodArrow();
        ret[2] = new ConfusionPotion();
        ret[3] = new ParalyzePotion();
        ret[4] = new SleepPotion();
        ret[5] = new PoisonPotion();
        ret[6] = new AntiPoisonPotion();
        ret[7] = new DragonPotion();
        ret[8] = new FirePotion();
        ret[9] = new BullRush(5);
        ret[10] = new FireBall(5);
        ret[11] = new BombPot();
        Commodities.Add(new BronzeShield());
        Commodities.AddRange(ret);
        Commodities.Add(new WoodFlooring());
        Commodities.Add(new WoodPillar());
        Commodities.Add(new WoodWall());
        Commodities.Add(new MiddleBread());
        Commodities.Add(new HealPotion2());
        Commodities.Add(new Water());
        Commodities.Add(new WarpPotion());
        Commodities.Add(new STRUpPotion());
        Commodities.Add(new HPUpPotion());
        Commodities.Add(new HungerUpPotion());
        Commodities.Add(new HungerDownPotion());
        Commodities.Add(new SpeedUpPotion());
        Commodities.Add(new LevelDownPotion2());
        Commodities.Add(new LevelUpPotion2());
        Commodities.Add(new HealPotion3());
        Commodities.Add(new PerceptionPotion());
        Commodities.Add(new BlindPotion());
        //
        Commodities.Add(new LargeBread());
        Commodities.Add(new VeryLargeBread());
        //
        Commodities.Add(new AppraiseBook());
        Commodities.Add(new BakeryBook());
        Commodities.Add(new ConfusionBook());
        Commodities.Add(new CoatBook());
        Commodities.Add(new DontMoveBook());
        Commodities.Add(new EnemeyGatherBook());
        Commodities.Add(new EscapeBook());
        Commodities.Add(new ExorcismBook());
        Commodities.Add(new HawkEyeBook());
        Commodities.Add(new ItemGatherBook());
        Commodities.Add(new NoTitleBook());
        Commodities.Add(new PotExpantionBook());
        Commodities.Add(new PotHardeningBook());
        Commodities.Add(new Inazuma());
        Commodities.Add(new RockFallBook());
        Commodities.Add(new WeaponEnchantmentBook());
        Commodities.Add(new ShieldEnchantmentBook());
        Commodities.Add(new SleepBook());
        Commodities.Add(new TrapDestroyBook());
        Commodities.Add(new TrapMakeBook());
        Commodities.Add(new Suidashi());
        //
        Commodities.Add(new DecoyCane());
        Commodities.Add(new SealedCane());
        Commodities.Add(new AtkDownCane());
        Commodities.Add(new DefDownCane());
        Commodities.Add(new BombCane());
        Commodities.Add(new HealCane());
        Commodities.Add(new ExciteCane());
        Commodities.Add(new LevelUpCana());
        Commodities.Add(new LevelDownCane());
        Commodities.Add(new MissedSwingCana());
        Commodities.Add(new PalliativeCane());
        Commodities.Add(new ParalyzeCane());
        Commodities.Add(new PullOnCane());
        Commodities.Add(new SnatchCane());
        Commodities.Add(new SpeedUpCane());
        Commodities.Add(new SpeedDownCane());
        Commodities.Add(new SwapHpCane());
        Commodities.Add(new SwapPositionCane());
        Commodities.Add(new TenFeetStick());
        //
        Commodities.Add(new AppraisePot());
        Commodities.Add(new CompositionPot());
        Commodities.Add(new CursingPot());
        Commodities.Add(new EnhancedPot());
        Commodities.Add(new WeakenedPot());
        Commodities.Add(new ExoricismPot());
        Commodities.Add(new HealPot());
        Commodities.Add(new ItemChangePot());
        Commodities.Add(new MaterialPot());
        Commodities.Add(new SoldPot());
        Commodities.Add(new VanilaPot());
        Commodities.Add(new VoidPot());
        Commodities.Add(new WarehousePot());
        //
        Commodities.Add(new IronArrow());
        Commodities.Add(new SilverArrow());
        Commodities.Add(new PoisonArrow());
        Commodities.Add(new SagittariusArrow());

        //
        Commodities.Add(new TestBangle());
        Commodities.Add(new AntiPoisonBangle());
        Commodities.Add(new AntiParalyzeBangle());
        Commodities.Add(new AntiSleepBangle());
        Commodities.Add(new AntiConfusionBangle());
        Commodities.Add(new LongCastBangle());
        Commodities.Add(new STRUpBangle());
        Commodities.Add(new HealBangle());
        Commodities.Add(new AutoWarpBangle());
        Commodities.Add(new ExorcismBangle());
        Commodities.Add(new AutoExpGainBangle());
        Commodities.Add(new BombBangle());
        Commodities.Add(new ItemClairvoyanceBangle());
        Commodities.Add(new EnemyClairvoyanceBangle());
        Commodities.Add(new HawkEyeBangle());
        Commodities.Add(new AutoAppraiseBangle());
        Commodities.Add(new WallWalkBangle());
        Commodities.Add(new SneakWalkBangle());
        Commodities.Add(new CriticalBangle());
        Commodities.Add(new PainBlowBangle());
        ////
        Commodities.Add(new IronSield());
        Commodities.Add(new TowerShield());
        Commodities.Add(new TurtleShield());
        Commodities.Add(new AegisShield());
        Commodities.Add(new DragonSteelShield());
        Commodities.Add(new PotLidShield());
        Commodities.Add(new OldShield());
        Commodities.Add(new MagicReflectionShield());

        Commodities.FindAll(item => !item.IsInitalized).ForEach(item => item.init());
    }
 public void open(ItemBasis item)
 {
     init(item);
     base.open();
 }
 void init(ItemBasis item)
 {
     Window.ClearText();
     TargetItem = item;
     MainDescriptions[0].Text = item.Name;
     MainDescriptions[1].Text = item.Description;
     Window.addWindowText(MainDescriptions);
     Window.addWindowText(pagearrow);
     CurrentPageCount = 0;
     TotalPageCount = 0;
     EquipmentItemBasis equip = item as EquipmentItemBasis;
     if (equip != null) {
         var list = new List<EquipmentAbilityBasis>(equip.CommpositedAbilities);
         Abilities = list.FindAll(a => a.IsVisbleDescription).ToArray();
         Window.addWindowText(AbilityDescriptions);
         TotalPageCount = Mathf.CeilToInt((Abilities.Length / (float)AbilityLabelCount));
         setOnePageAbilityText();
     }
 }
 public virtual ItemBasis tradeItem(ItemBasis invitem, ItemInventory targetinv)
 {
     ItemBasis pickup = ccm.OnItemEntity.Object;
     targetinv.trade(invitem, ccm.OnItemEntity);
     ccm.OnItemEntity.Object = invitem;
     //Debug.LogFormat("Trade:{0},{1}", invitem.Name, invitem.Erase);
     //Debug.LogFormat("PickUp:{0},{1}", pickup.Name, pickup.Erase);
     //Debug.LogFormat("OnEntity:{0},{1}", ccm.OnItemEntity.Entity.Name, ccm.OnItemEntity.Entity.Erase);
     return pickup;
 }
 public virtual void throwItem(ItemBasis item, ItemInventory targetinv, Action callback = null)
 {
     ItemEntity entity;
     GameController.SoundController.playSE(SoundNameList.Item_Throw);
     //GameController.PlayingLogger.addLog((targetinv != null).ToString());
     if (targetinv != null && targetinv.contains(item))
     {
         targetinv.remove(item);
         entity = ObjectEntityFactory.enableItemEntity(item, this.CurrentPosition); //ItemEntityFactory.instantiateItemEntity(item, this.CurrentPosition);
         //Debug.Log("Erase!"+item.Erase);
     }
     else
     {
         entity = ccm.OnItemEntity;
         entity.Object = item;
     }
     entity.throwItem(CurrentDirection, Parameter.WallPenatrableThrow, this,callback);
     GameController.PlayingLogger.thorwItem(this, item);
 }
    public virtual void putItem(ItemBasis item, ItemInventory targetinv)
    {
        if (targetinv.contains(item))
        {
            //Debug.Log("Put Item!");
            //Parameter.Inventory.remove(item);
            targetinv.remove(item);
            ObjectEntityFactory.enableItemEntity(item, this.CurrentPosition);

        }
    }
Esempio n. 29
0
 public CMD_ThrowItem(PlayerController owner, ItemBasis target,ItemInventory targetinv)
     : base(owner)
 {
     Target = target;
     TargetInventory = targetinv;
 }
 /// <summary>
 /// 商店となる部屋を設定するためのメソッド。
 /// 与えられた禁止リストと条件に合わない部屋を除外した部屋の中から選択する。
 /// </summary>
 /// <param name="denyrooms"></param>
 /// <returns></returns>
 public Room setShopRoom(params Room[] denyrooms)
 {
     Debug.Log("Start Shop Room Creation.");
     List<Room> notshoprooms = new List<Room>();
     // 部屋の縦横どちらかが4未満か、
     // 部屋に繋がる出入り口の数が0または3以上の部屋が除外する。
     notshoprooms = CurrentDungeonInformation.CurrentFloor.Rooms.FindAll(
         r => {
             return (r.Size.x < 4 || r.Size.y < 4) || (r.EntranceDoorPositions.Length == 0 || r.EntranceDoorPositions.Length >= 3);
             } );
     CurrentDungeonInformation.CurrentFloor.Rooms.ForEach(r => {
         Debug.LogFormat("{0},{1}",r.Size,r.EntranceDoorPositions.Length);
     });
     notshoprooms.AddRange(denyrooms);
     notshoprooms =  notshoprooms.Distinct().ToList();
     notshoprooms.RemoveAll(r => r == null);
     //notshoprooms.ForEach(r => Debug.Log(r.ToString()));
     //Debug.LogFormat("Rooms:{0} NotShops:{1}",CurrentDungeonInformation.CurrentFloor.Rooms.Count,notshoprooms.Count);
     Room room = CurrentDungeonInformation.CurrentFloor.selectRnadomRoom(notshoprooms);
     //Debug.Log("Found Room: "+(room!=null));
     if (room == null) return null;
     int centerx = Mathf.RoundToInt(room.Position.x + room.Size.x / 2);
     int centery = Mathf.RoundToInt(room.Position.y + room.Size.y / 2);
     //Vector2 centerpos = new Vector2(Mathf.RoundToInt(centerx), Mathf.RoundToInt(centery));
     ItemBasis[] commodities = new ItemBasis[9];
     int idx = 0;
     for (int x = 0; x < 3; x++) {
         for (int y = 0; y < 3; y++)
         {
             int dx = centerx + (x - 1);
             int dy = centery + (y - 1);
             ItemBasis item = CurrentDungeonParameter.DistributionTable.randomSelectItem(ItemBasis.ItemCode.MONEY);
             item.IsCommodity = true;
             item.init();
             commodities[idx++] = item;
             ObjectEntityFactory.enableItemEntity(item, new Vector2(dx, dy));
         }
     }
     // 商人を入り口の斜めに立たせる。
     Vector2 xdelta = new Vector2(1, 0);
     Vector2 ydelta = new Vector2(0, 1);
     Vector2 posdelta = Vector2.zero;
     Vector2 entrance = Vector2.zero;
     foreach (Vector2 pos in room.EntranceDoorPositions) {
         if (room.overlaps(pos + ydelta))
         {
             // 入り口が下にある
             posdelta = ydelta;
             entrance = pos + ydelta;
         }
         else if (room.overlaps(pos - ydelta))
         {
             // 入り口が上にある
             posdelta = -ydelta;
             entrance = pos - ydelta;
         }
         else if (room.overlaps(pos + xdelta))
         {
             // 入り口が左にある
             posdelta = xdelta;
             entrance = pos + xdelta;
         }
         else if (room.overlaps(pos - xdelta)) {
             // 入り口が右にある
             posdelta = -xdelta;
             entrance = pos - xdelta;
         }
         var merchant = new DungeonMerchant(entrance,posdelta,room,commodities);
         ObjectEntityFactory.enableCharacterEntity(merchant, merchant.WaitPoint);
     }
     room.isShop = true;
     Debug.Log("End Shop Room Creation.");
     return room;
 }