public GameClient() { CharacterBehavior behavior = new CharacterBehavior(Configuration.Behaviors.LoadDefault().GetBehaviorsSets()); EffectEngine effectEngine = new EffectEngine(new RandomGenerator(), Configuration.ConfigData.LoadDefault()); SkillEngine skillEngine = new SkillEngine(effectEngine); Configuration.Skills skills = Configuration.Skills.LoadDefault(); InitialState = Configuration.InitialState.LoadDefault(skills); GameState state = InitialState.CreateInitialBattle(); Engine = new GameEngine(state, behavior, skillEngine, effectEngine); Engine.DelayedActions += (o, e) => Delegate?.OnDelayedAction(e.Action); Engine.SkillUsed += (o, e) => Delegate?.OnSkillUsed(e.Character, e.Skill); Engine.SkillChannelStarted += (o, e) => Delegate?.OnSkillChannelStarted(e.Character, e.Skill); Engine.SkillChannelEnded += (o, e) => Delegate?.OnSkillChannelEnded(e.Character, e.Skill); }
void LoadLevel(GameState state, int level) { Configuration.Skills skills = Configuration.Skills.LoadDefault(); Engine.LoadState(Configuration.InitialState.LoadDefault(skills).LoadBattle(state, level)); Delegate?.OnNewLevel(level); }