public static void RaiseCurtainLeave(Field.Tile tile) { if (OnCurtainLeave != null) { OnCurtainLeave(tile); } }
public static void StructureDestroyed(Field.Tile tile) { if (OnStructureDestroyed != null) { OnStructureDestroyed(tile); } }
private static void RaiseCurtainActivate(Field.Tile tile) { if (OnCurtainActivate != null) { OnCurtainActivate(tile); } }
public bool Turn(Field.Tile target) { if (tile == null || target == null) { return(false); } if (target == tile.left) { direction = Field.Directions.LEFT; } else if (target == tile.right) { direction = Field.Directions.RIGHT; } else if (target == tile.up) { direction = Field.Directions.UP; } else if (target == tile.down) { direction = Field.Directions.DOWN; } else { return(false); } _face.UpdateDirectionView(direction); return(true); }
public static void ActivateTile(Field.Tile tile) { if (tile.type == Field.Tile.TileTypes.STORK) { RaiseStorkTalk(tile); return; } if (tile.type == Field.Tile.TileTypes.CURTAIN) { RaiseCurtainActivate(tile); return; } if (tile.type == Field.Tile.TileTypes.TURNSTILE) { if (GlobalDataHolder.player_gold >= GlobalDataHolder.gold_to_pass_turnstile) { GlobalDataHolder.player.tile.unit = null; GlobalDataHolder.player.tile = tile; tile.unit = GlobalDataHolder.player; GlobalDataHolder.player_gold -= GlobalDataHolder.gold_to_pass_turnstile; GlobalDataHolder.player.ForceMoveByDirection(GlobalDataHolder.player.direction); } return; } if (tile.type == Field.Tile.TileTypes.EXIT) { RaiseLevelEnd(); return; } RaiseTileActivate(tile); }
public FindItem(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score) : base(task_giver, reward_exp, reward_gold, reward_score, 0) { _done = false; item = Item.CreateQuestItem(); GlobalEventSystem.OnItemPickedUp += Done; }
public FindUnit(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score, float reward_time) : base(task_giver, reward_exp, reward_gold, reward_score, reward_time) { _done = false; unit_to_interact = GlobalDataHolder.quest_unit.Spawn(GlobalDataHolder.field.random_no_unit_road); GlobalEventSystem.OnUnitActivate += ProgressChecker; }
private static void RaiseTileActivate(Field.Tile tile) { if (OnTileActivate != null) { OnTileActivate(tile); } }
private static void RaiseStorkTalk(Field.Tile tile) { if (OnStorkTalk != null) { OnStorkTalk(tile); } }
public override void Action(Field.Tile target) { base.Action(target); if (target.type == Field.Tile.TileTypes.STORK) { GlobalEventSystem.TalkToStork(target); } }
public Task(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score, float reward_time) { this.task_giver = task_giver; this.reward_exp = reward_exp; this.reward_gold = reward_gold; this.reward_score = reward_score; this.reward_time = reward_time; }
public KillEnemyOfType(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score, int enemy_id, int needed) : base(task_giver, reward_exp, reward_gold, reward_score, 0) { this.enemy_id = enemy_id; this.needed = needed; done = 0; GlobalEventSystem.OnDeath += ProgressChecker; }
public virtual bool Move(Field.Tile target) { if (!Turn(target)) { return(false); } return(MoveByDirection(direction)); }
private static void RaiseStorkTalk(Field.Tile tile) { Task task = Task.FindTask(tile); if (OnStorkTalk != null) { OnStorkTalk(tile, task); } }
protected void _RenderTile(Field.Tile tile, Vector3 pos) { var tileView = _CreateTile(tile.type); tileView.SetTile(tile); tileView.Show(); tileView.transform.parent = this.transform; tileView.transform.localPosition = pos; }
public static Task CreateFindItem(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score) { FindItem task = new FindItem(task_giver, reward_exp, reward_gold, reward_score); if (!task.item.Spawn(GlobalDataHolder.field.random_no_item_road)) { return(null); } return(task); }
public static Task CreateFindUnit(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score, float reward_time) { FindUnit task = new FindUnit(task_giver, reward_exp, reward_gold, reward_score, reward_time); if (task.unit_to_interact == null) { return(null); } return(task); }
public override void SetTile(Field.Tile __tile) { base.SetTile(__tile); if (hasTask) { _taskMark.Show(); } else { _taskMark.Hide(); } }
public static Task FindTask(Field.Tile giver, bool create_new_if_not_found = true, int reward_exp = 50, int reward_gold = 50, int reward_score = 1000, float reward_time = 40f) { if (tasks.ContainsKey(giver)) { return(tasks[giver]); } else { if (create_new_if_not_found) { int rnd = UnityEngine.Random.Range(0, 3); Task task = null; switch (rnd) { case 0: { int count_to_kill = UnityEngine.Random.Range(KillEnemyOfType.MINIMUM_TO_KILL, KillEnemyOfType.MAXIMUM_TO_KILL); float mult = ((float)count_to_kill) / KillEnemyOfType.MINIMUM_TO_KILL; task = CreateKillEnemyOfType(giver, UnityEngine.Mathf.CeilToInt(reward_exp * mult), UnityEngine.Mathf.CeilToInt(reward_gold * mult), UnityEngine.Mathf.CeilToInt(reward_score * mult), GlobalDataHolder.next_enemy_id, count_to_kill); } break; case 1: { task = CreateFindItem(giver, reward_exp, reward_gold, reward_score); } break; case 2: { task = CreateFindUnit(giver, reward_exp, reward_gold, reward_score, reward_time); } break; default: break; } if (task != null) { tasks[giver] = task; } return(task); } return(null); } }
public virtual bool Move(Field.Directions direction) { //Debug.Log( "Move called by " + GetInstanceID() ); if (tile == null) { return(false); } Field.Tile target; switch (direction) { case Field.Directions.UP: target = tile.up; break; case Field.Directions.DOWN: target = tile.down; break; case Field.Directions.LEFT: target = tile.left; break; case Field.Directions.RIGHT: target = tile.right; break; default: target = null; break; } this.direction = direction; if (target != null) { if (this == GlobalDataHolder.player) { target.Activate(); } if ((target.passable) && target.unit == null) { //Debug.Log( "Moved from (" + tile.x.ToString() + ";" + tile.y.ToString() + ") to (" + target.x.ToString() + ";" + target.y.ToString() +")"); target.unit = this; tile.unit = null; tile = target; return(true); } } return(false); }
public bool Spawn(Field.Tile tile) { if (tile.item != null) { return(false); } tile.item = this; this.tile = tile; if (tile.tileView != null) { tile.tileView.UpdateItemView(); } return(true); }
public virtual bool Move(Field.Directions direction) { if (tile == null) { return(false); } Field.Tile target; switch (direction) { case Field.Directions.UP: target = tile.up; break; case Field.Directions.DOWN: target = tile.down; break; case Field.Directions.LEFT: target = tile.left; break; case Field.Directions.RIGHT: target = tile.right; break; default: target = null; break; } this.direction = direction; if (target != null && target.unit == null) { if (target.type == Field.Tile.TileTypes.ROAD) { target.unit = this; tile.unit = null; tile = target; return(true); } else { Action(target); return(true); } } return(false); }
public virtual FieldUnit Spawn(Field.Tile position) { if (position == null) { return(null); } if (position.unit == null && position.type == Field.Tile.TileTypes.ROAD) { //TODO //Instantiation FieldUnit fu = new FieldUnit(); fu.direction = Field.Directions.LEFT; position.unit = fu; fu.tile = position; return(fu); }
public virtual FieldUnit Spawn(Field.Tile position, bool new_inst = true) { if (position == null) { return(null); } if (position.unit == null && position.passable) { //TODO //Instantiation FieldUnit fu = this; if (new_inst) { if (_factory != null) { fu = _factory.Allocate().GetComponent <FieldUnit>(); fu.Show(); } else { fu = Instantiate(this); } _allUnits.Add(fu); } fu.direction = Field.Directions.LEFT; position.unit = fu; fu.tile = position; fu._SetPosition(position.tileView.transform.position); fu.Initialize(); GlobalEventSystem.RaiseUnitSpawned(this); return(fu); } return(null); }
public virtual void SetTile(Field.Tile __tile) { tile = __tile; if (tile.type == Field.Tile.TileTypes.STRUCTURE) { _ClearFace(); SetFace( StructureFaceFactory.i.CreateFace( _structureMask = tile.GetNoEqMask(Field.Tile.TileTypes.STRUCTURE))); } else if (tile.type == Field.Tile.TileTypes.SPAWN) { SetFace( SpawnFaceFactory.i.CreateFace( enemyType)); } if (tile.item != null) { UpdateItemView(); } }
public virtual bool Move(Field.Tile target) { if (!Turn(target)) { return(false); } if (target != null && target.unit == null) { if (target.type == Field.Tile.TileTypes.ROAD) { target.unit = this; tile.unit = null; tile = target; return(true); } else { Action(target); return(true); } } return(false); }
private void StartCurtainWork(Field.Tile tile) { uses_curtain = true; OnRealTimeTick += CurtainTick; }
public static Task CreateKillEnemyOfType(Field.Tile task_giver, int reward_exp, int reward_gold, int reward_score, int enemy_id, int needed) { return(new KillEnemyOfType(task_giver, reward_exp, reward_gold, reward_score, enemy_id, needed)); }
protected void _OnStorkTalk(Field.Tile tile, Task task) { tile.tileView.ResetTile(); ((StorkTileView)tile.tileView).ShowQuest(task.message); Log("Task: " + task.message); }
private void EndCurtainWork(Field.Tile tile) { uses_curtain = false; OnRealTimeTick -= CurtainTick; }