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); }
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>(); }
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>(); }
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); }
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); }
void Awake() { mInstance = this; mCtrl = GetComponent <PoolController>(); foreach (Group grp in groups) { grp.ComputeItemRange(); } }
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); }
private void Awake() { if (_Instance != null && _Instance != this) { Destroy(this.gameObject); } else { _Instance = this; } }
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(); }
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()); }
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; }
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); }
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"); }
/// <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); } }
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()); }
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); } ); }
void OnDestroy() { mInstance = null; }
public BossMonster(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm) : base(objectField, objectStage, itemDropManager, parentFsm) { }
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; }
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); } }
private void OnDestroy() { Transform parent = GameObject.FindGameObjectWithTag("Canvas").transform; ItemDropManager.ItemDrop(transform.position, Vector3.one, parent); }
public Spot(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm, string actionPattern) : base(objectField, objectStage, itemDropManager, parentFsm) { this.actionPattern = actionPattern; name = objectStage.Type.ToString(); }
public StageEndDoor(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm) : base(objectField, objectStage, itemDropManager, parentFsm) { }
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; }
public SpotBuffer(ObjectField objectField, ObjectStage objectStage, ItemDropManager itemDropManager, FSM parentFsm) : base(objectField, objectStage, itemDropManager, parentFsm, GetRandomBuffer()) { InitFSM("Shrine.fsm", this, false); }
void Awake() { _instance = this; }
public void constructor02() { SaveFileHandler sfh = new SaveFileHandler(); ItemDropManager idm = new ItemDropManager(sfh); }
public void constructor01() { ItemDropManager idm = new ItemDropManager(); }
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); }