public Bitmap DrawTextASBitmap(CardStructure structure, string?name, CardSubType subType, bool twoHanded, Condition condition, string?modifiers, string?center, string?text, string?flavorText, string?scrapped, string?lvl, string?winText, string?loseText, Race race) { var placeholder = new Bitmap(700, 1000); switch (structure) { case CardStructure.Normal: return(_drawNormalCards.DrawTextForNormalCards(name, subType, twoHanded, condition, modifiers, center, text, flavorText, scrapped)); case CardStructure.Monster: return(_drawMonsterCards.DrawTextForMonsterCards(name, lvl, race, winText, loseText, text, flavorText)); default: break; } return(placeholder); }
void Update() { //what was clicked on/moused over: Space space = GameController.Game.board.GetSpaceAt(mouseSpace()); Character character = GameController.Game.CharAtPos(mouseSpace()); CardStructure cardStructure = GameController.Game.GetAtPos <CardStructure>(mouseSpace(), "Spawner"); // shit code, please improve //handle the cursor cursor.SetActive(false); { GameObject _cursor = placing == null ? cursor : placing; _cursor.SetActive(true); _cursor.transform.position = mouseSpace(); } activeCursor.SetActive(active != null); if (active != null) { activeCursor.transform.position = active.transform.position; } //cursor color/icon //* { string s = "Cursor"; switch (mode) { case Modes.MOVE_CHAR: if (space != null) { if (active != null) { if (character != null && active.CanAttack(character)) { s = "Attack"; } else if (character == null && active.CanMove(space)) { s = "Move"; } } } break; case Modes.TARGET: if (targetPred != null && targetPred(mouseSpace())) { s = "Target"; } break; } cursor.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Art/Cursors/" + s); }//*/ // /shit code //handle clicks if (Input.GetMouseButtonDown(0)) { switch (mode) { //control a character case Modes.MOVE_CHAR: if (active != null) { //move if did not click on character if (character == null) { if (active.CanMove(space)) { active.Move(space); active.ExhaustMove(space); if (!active.MoveAct) { Clear(); } } } //attack if did else { if (active.CanAttack(character)) { active.Attack(character); active.ExhaustAttack(); if (!active.MoveAct) { Clear(); } } } } break; //places the loaded board piece where clicked case Modes.PLACE_BOARD: if (placing != null && GameController.Game.placeBoard(placing.GetComponent <Board>(), mouseSpace())) { /**/ Debug.Log("Placing terrain."); Destroy(placing); Clear(); } break; //places the loaded character where clicked case Modes.PLACE_CHAR: if (placing != null && targetPred(mouseSpace())) { Clear(); } break; //handle things that want to target spaces case Modes.TARGET: if (targetPred(mouseSpace())) { target(mouseSpace()); Clear(); } break; } } else if (Input.GetMouseButtonDown(1)) { //select character switch (mode) { case Modes.NONE: if (cardStructure != null && ActivePlayer == cardStructure.Owner && cardStructure.CanActivate()) { //above conditions will bug w/ non-spawner CardStructures that can active under a character /**/ Debug.Log("Activating a CardStructure"); cardStructure.Activate(); break; } else { mode = Modes.MOVE_CHAR; goto case Modes.MOVE_CHAR; } case Modes.MOVE_CHAR: active = character; if (active == null) { mode = Modes.NONE; } else { //select the clicked on character hud.Zoom(active.Card); if (active.card.Owner != ActivePlayer) { active = null; mode = Modes.NONE; } else { Debug.Log("Have selected " + active.card.Name); } } break; } } //use number keys to play cards if (mode == Modes.NONE) { for (int i = 0; i < ActivePlayer.Hand.Length && i < 10; ++i) { if (Input.GetKeyDown("" + i) || (i == 0 && Input.GetKeyDown("`"))) // acccepts ` as an alterative to 0 { hud.Zoom(ActivePlayer.Hand[i]); if (Input.GetKey(KeyCode.Tab)) { //**/Debug.Log("Playing a " + ActivePlayer.Hand[i].GetType().ToString()); ActivePlayer.Play(ActivePlayer.Hand[i], this); } } } } //pan control with WASD if (Input.GetKey(KeyCode.A)) { Camera.main.transform.position += new Vector3(-panSpeed, 0); } else if (Input.GetKey(KeyCode.D)) { Camera.main.transform.position += new Vector3(panSpeed, 0); } else if (Input.GetKey(KeyCode.W)) { Camera.main.transform.position += new Vector3(0, panSpeed); } else if (Input.GetKey(KeyCode.S)) { Camera.main.transform.position += new Vector3(0, -panSpeed); } //end the turn on <space> if (Input.GetKeyDown(KeyCode.Space)) { mode = Modes.OFF; Clear(); GameController.Game.Turn(); } //abort input with <esc> if (Input.GetKeyDown(KeyCode.Escape)) { if (mode == Modes.PLACE_BOARD) { Destroy(placing); } Clear(); } }
public DisposableList <Bitmap> CardTemplate(CardStructure structure, CardType type, Race race, bool extra, string?name, CardSubType subType, bool twoHanded, Condition condition, string?modifiers, string?center, string?text, string?flavorText, string?scrapped, string?lvl, string?winText, string?loseText) { var bitmaplist = new DisposableList <Bitmap>(); switch (structure) { case CardStructure.Normal: switch (type) { case CardType.Action: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Action())); break; case CardType.Monster1: case CardType.Monster2: case CardType.Monster3: case CardType.Monster4: case CardType.Monster5: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell())); break; case CardType.Equipment1: case CardType.Equipment2: case CardType.Equipment3: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Equipment())); break; case CardType.Companion: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Soilder())); break; case CardType.Library: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell())); break; case CardType.Bar: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class())); break; case CardType.Duell: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Duell())); break; case CardType.Curse: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Desaster())); break; case CardType.Blessing: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Animal())); break; case CardType.Disaster: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Desaster())); break; case CardType.Class: case CardType.Tavern: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class())); break; case CardType.Spell: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell())); break; case CardType.Empty: break; } bitmaplist.Add(() => _picturesFromArchive.Boarder()); break; case CardStructure.Monster: switch (race) { case Race.Human: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Spell())); break; case Race.Soldier: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Soilder())); break; case Race.Vampire: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Action())); break; case Race.Animal: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Animal())); break; case Race.God: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.God())); break; case Race.Monster: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Equipment())); break; case Race.All: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Class())); break; case Race.Rock: bitmaplist.Add(() => _createPicture.BlendingMultiply(() => _picturesFromArchive.Filter(), () => _picturesFromArchive.Rock())); break; case Race.Empty: break; } bitmaplist.Add(() => _picturesFromArchive.Boarder()); bitmaplist.Add(() => _picturesFromArchive.Win()); break; } bitmaplist.Add(() => _drawText.DrawTextASBitmap(structure, name, subType, twoHanded, condition, modifiers, center, text, flavorText, scrapped, lvl, winText, loseText, race)); if (extra) { bitmaplist.Add(() => _picturesFromArchive.Extra()); } return(bitmaplist); }