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 HeroCharacter(ObjectField objectField, ItemHeroEntity heroEntity, ItemHeroLevel itemHeroLevel, int[] equipIds, bool toLeft, InGameUser user, PuzzlePanel puzzlePanel, Buff.Handle onBuff, Buff.Handle onDeBuff) : base(E_OverlapEvent.Collision, objectField, toLeft) { this.heroEntity = heroEntity; this.user = user; this.puzzlePanel = puzzlePanel; InitStat(itemHeroLevel.Level, equipIds); InitStatus(onBuff, onDeBuff); RegistActions(); int skillId = heroEntity.ActiveSkill1; SkillCommand skillCommand = InitSkill(this, skillId, itemHeroLevel.Level); AddCommandSet("skill", 1, false, E_CommandConsume.Skill, null).TryAdd(skillCommand); }
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"); }