public UnitView GetUnit(UnitId id) { if (id == player.id) { return(player); } UnitView view; units.TryGetValue(id, out view); return(view); }
void StartGame() { status = GameStatus.Gaming; UpdateMenu(); playerId = new UnitId(UnitType.Player); PushToView(new UnitLibCmd(playerId)); MonoBehaviourHook.Instance.StartCoroutine(GenerateEnemy()); PushToView(new InputModel() { OnClickSpace = OnClickSpace, }); PushToView(new CollideTrigger() { id = playerId, onCollision = OnCollision, }); }
IEnumerator GenerateEnemy() { int idx = 0; while (status == GameStatus.Gaming) { var id = new UnitId(UnitType.Enemy, idx); idx++; var movable = new Movable() { id = id, type = MoveType.ToTarget, targetId = playerId, speed = 1f, }; PushToView(new UnitLibCmd(id)); PushToView(movable); yield return(new WaitForSeconds(1f)); } }
void OnCollision(UnitId self, UnitId other) { status = GameStatus.GameOver; UpdateMenu(); PushToView(new UnitLibCmd(playerId, UnitLibCmdType.Destroy)); }
public UnitCmd(UnitId id, T component) { this.id = id; this.component = component; }
public UnitLibCmd(UnitId id, UnitLibCmdType type = UnitLibCmdType.Create) { this.id = id; this.type = type; }