Example #1
0
        public List <Item> GetItems(bool addGlobalItems)
        {
            List <Item> droppedItems = new List <Item>();

            foreach (ItemAndRarity item in Items)
            {
                float value = Random.value;
                if (item.dropChance > value)
                {
                    Item itemThatGoesToInventory = item.item;
                    if (item.item.ShouldCreateNewInstanceWhenPlayerObtained())
                    {
                        itemThatGoesToInventory = Object.Instantiate(item.item);
                        itemThatGoesToInventory.CreatedFromOriginal = true;
                        itemThatGoesToInventory.OnAfterObtained();
                    }
                    droppedItems.Add(itemThatGoesToInventory);
                }
            }

            if (addGlobalItems)
            {
                droppedItems.AddRange(ItemDropManager.GetRandomDrop());
            }

            return(droppedItems);
        }
Example #2
0
    public LockObstacle(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
        : base(objectField, objectStage, itemDropManager, parentFsm)
    {
        objectLockObstacle = TableLoader.GetTable<ObjectLockObstacle>().Get(objectStage.ObjectID);
        int lockCount = objectLockObstacle.LockCount;
        this.name = StringTableLoader.Instance.Get(objectField.ObjectName);

        InitStatus<LockStatus>(
            new object[] { LockStatus.Lock, 0, lockCount, lockCount }
        );

        RegisterDeathCondition(
            delegate(Status current)
            {
                return current.Get(LockStatus.Lock) == 0;
            }
        );

        AddAction(Action.E_Type.Unlock,
            delegate(float value, GameInstance firer, string[] param)
            {
                FSMEvent("damage");
                return new ActionHandler.Result(LockStatus.Lock, -value);
            }
        );
        AddAction(Action.E_Type.Attack,
            delegate(float value, GameInstance firer, string[] param)
            {
                FSMEvent("damage");
                return new ActionHandler.Result(LockStatus.Lock, -1);
            }
        );
    }
 public override void OnStateEnter(Animator animator, AnimatorStateInfo animatorStateInfo, int layerIndex)
 {
     _gameObject        = animator.gameObject;
     _spriteRenderers   = _gameObject.GetComponentsInChildren <SpriteRenderer>();
     _startTime         = Time.time;
     _item_drop_manager = GameObject.FindGameObjectWithTag("ItemDropManager").GetComponent <ItemDropManager>();
 }
Example #4
0
    void Awake() {
        mInstance = this;

        mCtrl = GetComponent<PoolController>();

        foreach(Group grp in groups)
            grp.ComputeItemRange();
    }
 void Start()
 {
     _time_of_last_attack = Time.time;
     _animator            = GetComponent <Animator>();
     _player_location     = FindObjectOfType <PlayerInventory>().transform;
     _item_drop_manager   = FindObjectOfType <ItemDropManager>();
     _audio_source        = GetComponent <AudioSource>();
 }
Example #6
0
 public void constructor03()
 {
     Item[] items = new Item[4];
     items[0] = new Item("1", 1);
     items[1] = new Item("2", 2);
     items[2] = new Item("3", 3);
     items[3] = new Item("4", 4);
     ItemDropManager idm = new ItemDropManager(items);
 }
Example #7
0
    public StageObject(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
        : base(objectStage.OverlapEvent, objectField, true)
    {
        Assert.IsTrue(objectStage != null);

        this.objectStage = objectStage;
        this.itemDropManager = itemDropManager;
        this.parentFsm = parentFsm;
        label = string.Format("{0}\n{1}", objectStage.Type.ToString(), objectStage.ObjectID);
    }
Example #8
0
    void Awake()
    {
        mInstance = this;

        mCtrl = GetComponent <PoolController>();

        foreach (Group grp in groups)
        {
            grp.ComputeItemRange();
        }
    }
Example #9
0
        public void getCountRNGItems03()
        {
            Item[] items = new Item[1];
            items[0] = new Item("1", 1);
            ItemDropManager idm = new ItemDropManager(items);
            int             desiredNumberOfItems = 30;

            Item[] itemsRecieved = idm.getCountRNGItems(desiredNumberOfItems);

            Assert.AreEqual(desiredNumberOfItems, itemsRecieved.Length);
        }
Example #10
0
 private void Awake()
 {
     if (_Instance != null && _Instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         _Instance = this;
     }
 }
Example #11
0
    public void AddObstacles(Dictionary<float, int> subjects, ItemDropManager itemDropManager, FSM parentFsm)
    {
        var lastMonsterKey = subjects.Where(x => TableLoader.GetTable<ObjectStage>().Get(x.Value).Type == E_StageObjectType.Monster).Max(x => x.Key);

        Layer obstacleLayer = box.GetLayer(FieldData.ObjectLayer);
        foreach (var entity in subjects)
        {
            float posX = entity.Key;
            AddObstacle(obstacleLayer, posX, entity.Value, itemDropManager, parentFsm, lastMonsterKey == posX);
        }
        DumpFieldList();
    }
Example #12
0
        private void SetupItems()
        {
            var t1 = new List <ItemIndex> {
                ItemIndex.SecondarySkillMagazine,
                ItemIndex.BossDamageBonus,
                ItemIndex.BleedOnHit,
                ItemIndex.HealWhileSafe,
                ItemIndex.Mushroom,
                ItemIndex.Bear,
                ItemIndex.Hoof,
                ItemIndex.FireRing,
                ItemIndex.CritGlasses,
                ItemIndex.WardOnLevel
            };

            var t2 = new List <ItemIndex> {
                ItemIndex.Feather,
                ItemIndex.ChainLightning,
                ItemIndex.SlowOnHit,
                ItemIndex.JumpBoost,
                ItemIndex.EquipmentMagazine,
                ItemIndex.Seed
            };

            var t3 = new List <ItemIndex> {
                ItemIndex.AlienHead,
                ItemIndex.IncreaseHealing,
                ItemIndex.UtilitySkillMagazine,
                ItemIndex.ExtraLife,
                ItemIndex.FallBoots,
                ItemIndex.HealOnCrit
            };

            var eq = new List <EquipmentIndex> {
                EquipmentIndex.Lightning,
                EquipmentIndex.CritOnUse,
                EquipmentIndex.Blackhole,
                EquipmentIndex.Fruit
            };

            ItemDropManager.AddDropInformation(ItemDropLocation.SmallChest, t1.ToSelection(0.8f), t2.ToSelection(0.2f), t3.ToSelection(0.03f));
            ItemDropManager.AddDropInformation(ItemDropLocation.MediumChest, t2.ToSelection(0.8f), t3.ToSelection(0.2f));
            ItemDropManager.AddDropInformation(ItemDropLocation.LargeChest, t3.ToSelection());

            ItemDropManager.AddDropInformation(ItemDropLocation.Boss, t3.ToSelection());
            ItemDropManager.AddDropInformation(ItemDropLocation.Shrine, ItemDropManager.None.ToSelection(0.5f), t1.ToSelection(0.8f), t2.ToSelection(0.2f), t3.ToSelection(0.03f));

            // if i didn't care about equipment items:
            // DefaultItemDrops.AddEquipmentChestDefaultDrops();
            // but i do so:
            ItemDropManager.AddDropInformation(ItemDropLocation.EquipmentChest, eq.ToSelection());
        }
Example #13
0
    public MenuInGame(FSM parentFsm, UIManager2 panel1, UIManager2 panel2)
        : base(parentFsm, panel1, panel2, "MenuInGame.fsm")
    {
        timeClient = TimeManager.Instance.Create();

        InitUI();

        int stageId = (int)parentFsm.Variables["stageId"];
        InitStage(stageId, out stageEntity, out gameEntity);

        Rect fieldArea = UI.GetFieldArea();
        itemDropManager = new ItemDropManager(stageEntity.GameModeType, stageEntity.ConsumableTier);
        field = CreateField(stageEntity, fieldArea, timeClient, itemDropManager, fsm);

        // ddong
        CharacterSelect characterSelect = new CharacterSelect()
        {
            heroLevel = SaveData.level,
            heroId = GetClassCode(SaveData.selectClass),
            equipIds = ArrayTool.Create<int>(),
        };
        this.heroEntity = TableLoader.GetTable<ItemHeroEntity>().Get(characterSelect.heroId);

        Rect puzzleArea = UI.GetPuzzleArea();
        CreatePuzzle(stageEntity, heroEntity.HeroType, puzzleArea, timeClient, out puzzleRecord, out puzzlePanel);

        user = CreateUser(stageEntity, UI, fsm);
        heroCharacter = CreateCharacter(characterSelect, user, puzzlePanel, itemDropManager, UI.AddBuffIcon, UI.RemoveBuffIcon);
        user.SetCharacter(heroCharacter);
        puzzlePanel.SetOwner(heroCharacter);

        Func<float> getLifeDrainRate = (() => gameEntity.DefaultLifeDrainRate + gameEntity.LifeDrainRateIncrease * timeClient.time);
        new PlayerCharacter(user, heroCharacter, getLifeDrainRate, fsm);
        heroCharacter.Status.RegisterOnChangeEvent(HeroCharacter.Character.HP, OnCharacterHPChanged);
        heroCharacter.Status.RegisterOnChangeEvent(HeroCharacter.Character.HP, UI.ChangeHP);
        heroCharacter.Status.RegisterOnChangeEvent(HeroCharacter.Character.MP, UI.ChangeMana);
        heroCharacter.Status.RegisterOnChangeEvent(HeroCharacter.Character.Armor, UI.ChangeShield);

        UI.InitCommendSlots(fsm, heroCharacter);

        field.AddPlayerCharacter(heroCharacter);
        field.FocusOnForced(heroCharacter, 0);
        puzzlePanel.SetQueue(user.commandQueue);

        SetFocusTarget(heroCharacter);

        // ddong
        CutInStarter = StartCutIn;
    }
Example #14
0
        public void getCountRNGItems01()
        {
            Item[] items = new Item[4];
            items[0] = new Item("1", 1);
            items[1] = new Item("2", 2);
            items[2] = new Item("3", 3);
            items[3] = new Item("4", 4);
            ItemDropManager idm = new ItemDropManager(items);
            int             desiredNumberOfItems = 4;


            Item[] itemsRecieved = idm.getCountRNGItems(desiredNumberOfItems);

            Assert.AreEqual(desiredNumberOfItems, itemsRecieved.Length);
        }
Example #15
0
    public ButtonPanel(Rect rect, ItemHeroEntity heroEntity, HeroCharacter heroCharacter, ItemDropManager itemDropManager, int itemDropTier)
    {
        this.controlArea = rect;
        this.heroEntity = heroEntity;
        this.heroCharacter = heroCharacter;
        this.itemDropManager = itemDropManager;
        this.itemDropTier = itemDropTier;

        buttonTypes = new List<object>();
        foreach (var entity in Block.normalBlocks)
        {
            buttonTypes.Add(entity);
        }
        buttonTypes.Add("damage");
        buttonTypes.Add("item");
    }
Example #16
0
 /// <summary>
 /// 死亡操作
 /// </summary>
 void DoDie()
 {
     //死亡后加一次对应任务进度,掉落一个物品
     if (onceDropAndAchievement)
     {
         if (QuestManager.Instance().questState != QuestManager.QuestState.GETREWARD)
         {
             QuestManager.Instance().QuestStateUpdateByType(thisZombieIndex);
         }
         anim.SetBool("Die", true);
         this.GetComponent <CapsuleCollider>().enabled = false;
         PlayerStatusManager.Instance().AddExp(provideExp);
         ItemDropManager.Instance().CreateRandomDropItem(transform.position);
         onceDropAndAchievement = false;
         Destroy(this.gameObject, 3);
     }
 }
Example #17
0
        static void Main(string[] args)
        {
            SaveFileHandler saveFileHandler = new SaveFileHandler(new AssetManager());

            Inventory inventory = new Inventory();
            Item      item      = new Item("Test item", 5);
            Item      item2     = new Item("Testst", 1);

            inventory.addItem(item);
            inventory.addItem(item2);

            saveFileHandler.saveInventory(inventory);

            Inventory loadedInv = saveFileHandler.loadInventory();

            Console.ReadLine();

            ItemDropManager idm = new ItemDropManager(new SaveFileHandler());
        }
Example #18
0
    public MoneyObstacle(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
        : base(objectField, objectStage, itemDropManager, parentFsm)
    {
        InitStatus<Mob>(
            new object[] { Mob.Gold, 0, 100000, 0 }
        );

        RegisterDeathCondition(
            delegate(Status current)
            {
                return current.Get(Mob.Gold) > 0;
            }
        );

        AddAction(Action.E_Type.Money,
            delegate(float value, GameInstance firer, string[] param)
            {
                return new ActionHandler.Result(Mob.Gold, value);
            }
        );
    }
Example #19
0
 void OnDestroy() {
     mInstance = null;
 }
Example #20
0
 public BossMonster(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
     : base(objectField, objectStage, itemDropManager, parentFsm)
 {
 }
Example #21
0
    static HeroCharacter CreateCharacter(CharacterSelect characterSelect, InGameUser user, PuzzlePanel puzzlePanel, ItemDropManager itemDropManager, System.Action<StatusEffectEntity> addBuffIcon, System.Action<StatusEffectEntity> removeBuffIcon)
    {
        ItemHeroEntity heroEntity = TableLoader.GetTable<ItemHeroEntity>().Get(characterSelect.heroId);
        ObjectField objectField = TableLoader.GetTable<ObjectField>().Get(heroEntity.FieldObject);
        ItemHeroLevel heroLevelEntity = TableLoader.GetTable<ItemHeroLevel>().Get(heroEntity.HeroType, characterSelect.heroLevel);

        Buff.Handle onBuff = delegate(Buff buff)
        {
            if (addBuffIcon != null)
            {
                addBuffIcon(buff.statusEffectEntity);
            }
        };
        Buff.Handle onDeBuff = delegate(Buff buff)
        {
            if (removeBuffIcon != null)
            {
                removeBuffIcon(buff.statusEffectEntity);
            }
        };
        HeroCharacter heroCharacter = new HeroCharacter(objectField, heroEntity, heroLevelEntity, characterSelect.equipIds, false, user, puzzlePanel, onBuff, onDeBuff);

        {
            Action action = ActionPattern.Create("Vector(Self; [WalkSpeed]; 0; 0; false)").Generate(heroCharacter.Stat);
            heroCharacter.Fire(action, null);
            heroCharacter.PauseMoving();
        }

        for (int i = 0; i < 4; i++)
        {
            heroCharacter.AddItemSlot(i, user.commandQueue);
        }

        {
            heroCharacter.AddAction(Action.E_Type.Money,
                delegate(float value, GameInstance firer, string[] param)
                {
                    Action action = ActionPattern.Create("Action(User; Money; {0})").Generate(heroCharacter.Stat, value);
                    if (action != null)
                    {
                        heroCharacter.Fire(action, null);
                    }
                    return null;
                }
            );
            heroCharacter.AddAction(Action.E_Type.Exp,
                delegate(float value, GameInstance firer, string[] param)
                {
                    Action action = ActionPattern.Create("Action(User; Exp; {0})").Generate(heroCharacter.Stat, value);
                    if (action != null)
                    {
                        heroCharacter.Fire(action, null);
                    }
                    return null;
                }
            );
            heroCharacter.AddAction(Action.E_Type.GetKey,
                delegate(float value, GameInstance firer, string[] param)
                {
                    Action action = ActionPattern.Create("Action(User; GetKey; {0})").Generate(heroCharacter.Stat, value);
                    if (action != null)
                    {
                        heroCharacter.Fire(action, null);
                    }
                    return null;
                }
            );
            heroCharacter.AddAction(Action.E_Type.GetConsumable,
                delegate(float value, GameInstance firer, string[] param)
                {
                    if (RandomTool.IsIn(value))
                    {
                        var itemCommand = itemDropManager.DropItem();
                        if (itemCommand != null)
                        {
                            heroCharacter.TryAddItem(itemCommand);
                        }
                    }
                    return null;
                }
            );
        }

        return heroCharacter;
    }
Example #22
0
    public BattleObstacle(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
        : base(objectField, objectStage, itemDropManager, parentFsm)
    {
        var statTable = StatLoader.Instance.GetStatTable<int, ObjectMonsterStat>("ObjectID");
        Stat = statTable.Get(objectStage.ObjectID);

        objectMonster = TableLoader.GetTable<ObjectMonster>().Get(objectStage.ObjectID);
        name = StringTableLoader.Instance.Get(objectField.ObjectName);

        InitStatus<Mob>(
            new object[] { Mob.HP, 0, ObjectMonsterStat.MaximumLife, ObjectMonsterStat.MaximumLife, }
        );

        RegisterDeathCondition(
            delegate(Status current)
            {
                return current.Get(Mob.HP) == 0;
            }
        );

        AddAction(Action.E_Type.Attack,
            delegate(float value, GameInstance firer, string[] param)
            {
                bool isCritical = false;
                if (param != null)
                {
                    foreach (var entity in param)
                    {
                        if (entity == "critical")
                        {
                            isCritical = true;
                        }
                        else if (entity == "charged")
                        {
                            FSMEvent("chargedAttack");
                        }
                    }
                }
                string meterRes = "FieldEffect/TextPhysicalDmg";
                if (isCritical)
                {
                    meterRes = "FieldEffect/TextPhysicCriticalDmg";
                    PlaySound(79);
                }
                float damage = OnHit(value, ObjectMonsterStat.damageReduction, meterRes);
                return new ActionHandler.Result(Mob.HP, -damage);
            }
        );

        AddAction(Action.E_Type.Suicide,
                delegate(float value, GameInstance firer, string[] param)
                {
                    RemoveOverlapEvent();
                    RemoveHUD();
                    FSMEvent("Suicide");
                    return new ActionHandler.Result(Mob.HP, 0);
                }
        );

        /*
        AddAction(Action.E_Type.Attack,
            delegate(float value, GameInstance firer, string[] param)
            {
                bool isCritical = false;
                if (param != null)
                {
                    foreach (var entity in param)
                    {
                        if (entity == "critical")
                        {
                            isCritical = true;
                        }
                    }
                }
                string meterRes = "FieldEffect/TextMagicalDmg";
                if (isCritical)
                {
                    meterRes = "FieldEffect/TextMagicCriticalDmg";
                    PlaySound(79);
                }
                float damage = OnHit(value, ObjectMonsterStat.MagicResistance, meterRes);
                return new ActionHandler.Result(Mob.HP, -damage);
            }
        );
        AddAction(Action.E_Type.NoneDefensiveAttack,
            delegate(float value, GameInstance firer, string[] param)
            {
                FSMEvent("damage");
                CameraEffect.Instance.Flick(new Vector2(1, 1));
                float damage = value;
                AttachMeter("FieldEffect/TextMagicalDmg", (int)damage);
                return new ActionHandler.Result(Mob.HP, -damage);
            }
        );
         * */
        AddAction(Action.E_Type.Buff,
            delegate(float value, GameInstance firer, string[] param)
            {
                Buff.Handle onBuff = null;
                Buff.Handle onDebuff = null;
                int? buffID = Cast.To<int>(value);
                Status.AddBuff(buffID.Value, firer.Stat, onBuff, onDebuff);
                return new ActionHandler.Result(null, value);
            }
        );
        AddAction(Action.E_Type.Dispel,
            delegate(float value, GameInstance firer, string[] param)
            {
                Status.Dispel();
                return new ActionHandler.Result(null, value);
            }
        );

        if (!string.IsNullOrEmpty(objectMonster.fsm))
        {
            InitFSM(objectMonster.fsm, this, false);
        }
    }
Example #23
0
    private void OnDestroy()
    {
        Transform parent = GameObject.FindGameObjectWithTag("Canvas").transform;

        ItemDropManager.ItemDrop(transform.position, Vector3.one, parent);
    }
Example #24
0
File: Spot.cs Project: pb0/ID0_Test
 public Spot(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm, string actionPattern)
     : base(objectField, objectStage, itemDropManager, parentFsm)
 {
     this.actionPattern = actionPattern;
     name = objectStage.Type.ToString();
 }
Example #25
0
 public StageEndDoor(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
     : base(objectField, objectStage, itemDropManager, parentFsm)
 {
 }
Example #26
0
    static Field CreateField(StageEntity stageEntity, Rect fieldArea, TimeClient timeClient, ItemDropManager itemDropManager, FSM fsm)
    {
        //PreloadTool.PreloadStage(stageEntity.StageID);

        Field field = new Field(fieldArea, timeClient);
        field.ChangeSceneary(stageEntity.Resource);
        field.AddObstacles(StageSpawn.SpawnWithPos(stageEntity.StageID), itemDropManager, fsm);
        return field;
    }
Example #27
0
File: Spot.cs Project: pb0/ID0_Test
 public SpotBuffer(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm)
     : base(objectField, objectStage, itemDropManager, parentFsm, GetRandomBuffer())
 {
     InitFSM("Shrine.fsm", this, false);
 }
Example #28
0
 void Awake()
 {
     _instance = this;
 }
Example #29
0
 void OnDestroy()
 {
     mInstance = null;
 }
Example #30
0
 public void constructor02()
 {
     SaveFileHandler sfh = new SaveFileHandler();
     ItemDropManager idm = new ItemDropManager(sfh);
 }
Example #31
0
 public void constructor01()
 {
     ItemDropManager idm = new ItemDropManager();
 }
Example #32
0
    void AddObstacle(Layer layer, float posX, int stageObjectId, ItemDropManager itemDropManager, FSM parentFsm, bool lastMonster)
    {
        FieldInstance instance = null;
        ObjectField objectField = TableLoader.GetTable<ObjectField>().Get(stageObjectId);
        ObjectStage objectStage = TableLoader.GetTable<ObjectStage>().Get(stageObjectId);

        if (objectStage.Type == E_StageObjectType.Monster)
        {
            ObjectMonster objectMonster = TableLoader.GetTable<ObjectMonster>().Get(objectStage.ObjectID);
            if (objectMonster.MonsterType == E_MonsterType.Boss)
            {
                BossAlertTrigger alertTrigger = new BossAlertTrigger(parentFsm);
                layer.AddSubject(alertTrigger, posX - Constants.Instance.Field.CameraWidth, 0);
                AddFieldInstance(alertTrigger);

                instance = new BossMonster(objectField, objectStage, itemDropManager, parentFsm);
            }
            else if (lastMonster)
            {
                instance = new LastMonster(objectField, objectStage, itemDropManager, parentFsm);
            }
            else
            {
                instance = new BattleObstacle(objectField, objectStage, itemDropManager, parentFsm);
            }
        }
        else if (objectStage.Type == E_StageObjectType.Chest)
        {
            instance = new Chest(objectField, objectStage, itemDropManager, parentFsm);
        }
        else if (objectStage.Type == E_StageObjectType.EndPoint)
        {
            instance = new StageEndDoor(objectField, objectStage, itemDropManager, parentFsm);
        }
        else if (objectStage.Type == E_StageObjectType.Trap)
        {
            instance = new Trap(objectField, objectStage, itemDropManager, parentFsm);
        }
        else if (objectStage.Type == E_StageObjectType.Etc)
        {
            instance = new StageObject(objectField, objectStage, itemDropManager, parentFsm);
        }
        else
        {
            Assert.Fail("not implemented");
        }

        layer.AddSubject(instance, posX, 0);
        AddFieldInstance(instance);
    }