public void SetCardAvatar(CardAvatar cardAvatar) { if (this.cardAvatar == null) { this.cardAvatar = cardAvatar; } }
public override void Execute(Action action) { Card card; //THe case of a deal card being send before a creat rune, EX.(A card in the other persons hand) if (EntityManager.Singelton.GetEntity(cardGuid) != null) { CardAvatar ca = (EntityManager.Singelton.GetEntity(cardGuid) as Card).GetCardAvatar(); Debug.Log(ca); EntityManager.Singelton.RemoveEntity(cardGuid); if (type == CardType.minion) { card = new MinionCard(); MinionCard mc = card as MinionCard; CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id); mc.SetName(cd.cardName); mc.SetArt(cd.art); mc.SetBaseAttack(baseAttack); mc.SetBaseHealth(baseHealth); mc.SetMana(cost); mc.SetGuid(cardGuid); mc.SetDesc(cd.desc); mc.SetCardAvatar(ca); EntityManager.Singelton.AddEntity(cardGuid, mc); ca.Setup(card, cardGuid, controllerGuid); } } else { if (type == CardType.minion) { MinionCard mc = new MinionCard(); CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id); mc.SetCardText(cd.cardText); mc.SetName(cd.cardName); mc.SetArt(cd.art); mc.SetBaseAttack(baseAttack); mc.SetBaseHealth(baseHealth); mc.SetMana(cost); mc.SetGuid(cardGuid); mc.SetDesc(cd.desc); EntityManager.Singelton.AddEntity(cardGuid, mc); } else if (type == CardType.spell) { SpellCard sc = new SpellCard(); CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id); sc.SetName(cd.cardName); sc.SetArt(cd.art); sc.SetMana(cost); sc.SetDesc(cd.desc); sc.SetGuid(cardGuid); sc.SetCardType((int)type); EntityManager.Singelton.AddEntity(cardGuid, sc); } } action(); }
public void RemoveCardFromHand(CardAvatar cardAvatar, string controllerGuid) { float yPos = 0; if (controllerGuid == homeGuid) { yPos = -2.0f; } else if (controllerGuid == awayGuid) { yPos = 4.0f; } if (playHands.ContainsKey(controllerGuid)) { playHands[controllerGuid].Remove(cardAvatar); float width = 1.3f; float halfWidth = width + epsilon; float startPoint = playHands[controllerGuid].Count * halfWidth; for (int i = 0; i < playHands[controllerGuid].Count; i++) { playHands[controllerGuid][i].GetComponent <CardAvatar>().SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3)); } } }
public void AddCardToHand(CardAvatar cardAvatar, string controllerGuid, Action action)//Will need optional paramater for origin { float yPos = 0; if (controllerGuid == homeGuid) { yPos = -2.0f; if (!gameStarted) { yPos = 0.0f; } } else if (controllerGuid == awayGuid) { yPos = 4.0f; if (!gameStarted) { yPos = 5.0f; } } if (playHands.ContainsKey(controllerGuid)) { playHands[controllerGuid].Add(cardAvatar); float width = 1.3f; float halfWidth = width + epsilon; float startPoint = playHands[controllerGuid].Count * halfWidth; for (int i = 0; i < playHands[controllerGuid].Count; i++) { playHands[controllerGuid][i].GetComponent <CardAvatar>().SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3));//, action); } } action(); }
public int GetPossibleCardIndex(CardAvatar placingCard) { if (playFields [homeGuid].Count == 0) { return(0); } List <CardAvatar> checkCards = playFields [homeGuid]; for (int i = 0; i < checkCards.Count; i++) { if (checkCards [i].transform.position.x > placingCard.transform.position.x) { return(i); } } return(checkCards.Count); }
public void AddCardToPlayArea(CardAvatar cardAvatar, string controllerGuid, int index) { OriginOfCard oc = OriginOfCard.HAND; float yPos = 0; if (controllerGuid == homeGuid) { yPos = -0.0f; } else if (controllerGuid == awayGuid) { yPos = 2.0f; } if (playFields.ContainsKey(controllerGuid)) { cardAvatar.cardAvatarState = CardAvatarState.inPlay; float width = 1.3f; float halfWidth = width + epsilon; float startPoint = playFields[controllerGuid].Count * halfWidth; switch (oc) { case OriginOfCard.HAND: RemoveCardFromHand(cardAvatar, controllerGuid); playFields[controllerGuid].Insert(index, cardAvatar); for (int i = 0; i < playFields[controllerGuid].Count; i++) { playFields[controllerGuid][i].SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3)); } break; case OriginOfCard.SUMMON: playFields[controllerGuid].Insert(index, cardAvatar); for (int i = 0; i < playFields[controllerGuid].Count; i++) { playFields[controllerGuid][i].SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3)); } break; } } }
public override void Execute(Action action) { Card card; //Not sure but I think I might not need this anymore?? if (EntityManager.Singelton.GetEntity(uid) != null) { CardAvatar ca = (EntityManager.Singelton.GetEntity(uid) as Card).GetCardAvatar(); EntityManager.Singelton.RemoveEntity(uid); card = new MinionCard(); MinionCard mc = card as MinionCard; CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id); mc.SetName(cd.cardName); mc.SetBaseAttack(base_attack); mc.SetBaseHealth(base_health); mc.SetMana(cost); mc.SetGuid(uid); mc.SetDesc(cd.desc); mc.SetCardAvatar(ca); EntityManager.Singelton.AddEntity(uid, mc); ca.Setup(card, uid, controller_uid); } else { MinionCard mc = new MinionCard(); CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id); mc.SetCardText(cd.cardText); mc.SetName(cd.cardName); mc.SetArt(cd.art); mc.SetBaseAttack(base_attack); mc.SetBaseHealth(base_health); mc.SetMana(cost); mc.SetGuid(uid); mc.SetDesc(cd.desc); EntityManager.Singelton.AddEntity(uid, mc); } action(); }
public void CardClickedOn(CardAvatar cardAvatar) { }
private void CheckForBoardClick() { if (!PlayArea.Singelton.GetGameStart()) { return; } if (Input.GetMouseButtonDown(0)) { if (controllerState == ControllerState.waiting) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit rch; if (Physics.Raycast(ray, out rch, 1000000)) { GameObject go = rch.collider.gameObject; if (go.tag == "Card") { CardAvatar ca = go.GetComponentInParent <CardAvatar>(); if (ca.cardAvatarState == CardAvatarState.inHand) { if (ca.GetControllerGuid() == guid) { ca.cardAvatarState = CardAvatarState.inTransit; careAboutCard = ca; controllerState = ControllerState.movingCard; } } else if (ca.cardAvatarState == CardAvatarState.inPlay) { if (ca.GetControllerGuid() == guid) { targetOptions = OptionsManager.Singleton.options[ca.GetGuid()]; if (targetOptions != null) { careAboutCard = ca; controllerState = ControllerState.targeting; ca.cardAvatarState = CardAvatarState.waitingForTarget; } } } } else if (go.tag == "Hero") { } } } else if (controllerState == ControllerState.targeting) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit rch; if (Physics.Raycast(ray, out rch, 1000000)) { GameObject go = rch.collider.gameObject; if (go.tag == "Card") { CardAvatar ca = go.GetComponentInParent <CardAvatar>(); if (ca.cardAvatarState == CardAvatarState.inPlay && careAboutCard.cardAvatarState == CardAvatarState.inTransit) { string cardGuid = ca.GetGuid(); foreach (Option op in targetOptions) { if ((op as PlayCardOption).targetGuid == cardGuid) { controllerState = ControllerState.waiting; careAboutCard.cardAvatarState = CardAvatarState.inPlay; targetOptions = null; careAboutCard = null; int index = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard); OptionsManager.Singleton.PickUpOption(op, index); return; } } } else { //this would be for spells or something similar I think } } else if (go.tag == "Hero") { } } } } else if (Input.GetMouseButtonUp(0)) { if (careAboutCard != null) { if (controllerState == ControllerState.movingCard) { if (PlayArea.Singelton.InPlayArea(careAboutCard.transform.position)) { if (OptionsManager.Singleton.options.ContainsKey(careAboutCard.GetGuid())) { var options = OptionsManager.Singleton.options[careAboutCard.GetGuid()]; foreach (Option op in options) { if (op.GetType() == typeof(PlayCardOption)) { if ((op as PlayCardOption).targetGuid == "0") { int placeIndex = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard); OptionsManager.Singleton.PickUpOption(op, placeIndex); careAboutCard.cardAvatarState = CardAvatarState.inPlay; controllerState = ControllerState.waiting; careAboutCard = null; return; } else { CardLookingForTargets(options); careAboutCard.cardAvatarState = CardAvatarState.waitingForTarget; controllerState = ControllerState.targeting; return; } } else if (op.GetType() == typeof(PlaySpellOption)) { if ((op as PlaySpellOption).target == "-1") { OptionsManager.Singleton.PickUpOption(op); careAboutCard.cardAvatarState = CardAvatarState.inPlay; controllerState = ControllerState.waiting; careAboutCard = null; return; } else { CardLookingForTargets(options); careAboutCard.cardAvatarState = CardAvatarState.waitingForTarget; controllerState = ControllerState.targeting; return; } } } } else { careAboutCard.cardAvatarState = CardAvatarState.inHand; careAboutCard = null; } } else { careAboutCard.cardAvatarState = CardAvatarState.inHand; careAboutCard = null; } } else if (controllerState == ControllerState.targeting) { if (careAboutCard != null) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit rch; if (Physics.Raycast(ray, out rch, 10000000)) { string targetGuid = ""; if (rch.collider.gameObject.tag == "Card") { targetGuid = rch.collider.gameObject.GetComponentInParent <CardAvatar>().GetGuid(); } else if (rch.collider.gameObject.tag == "Hero") { targetGuid = rch.collider.gameObject.GetComponentInParent <HeroAvatar>().careAboutGuid; } if (careAboutCard.cardAvatarState == CardAvatarState.inHand) { if (targetOptions != null) { foreach (Option op in targetOptions) { if (op.GetType() == typeof(PlayCardOption)) { if ((op as PlayCardOption).targetGuid == targetGuid) { int placeIndex = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard); OptionsManager.Singleton.PickUpOption(op, placeIndex); careAboutCard = null; targetOptions = null; controllerState = ControllerState.waiting; } } else if (op.GetType() == typeof(PlaySpellOption)) { if ((op as PlaySpellOption).target == targetGuid) { OptionsManager.Singleton.PickUpOption(op); careAboutCard = null; targetOptions = null; controllerState = ControllerState.waiting; } } } } } else if (careAboutCard.cardAvatarState == CardAvatarState.waitingForTarget) { if (targetOptions != null) { foreach (Option op in targetOptions) { if ((op as AttackOption).defenderGuid == targetGuid) { OptionsManager.Singleton.PickUpOption(op); careAboutCard = null; targetOptions = null; controllerState = ControllerState.waiting; } } } } } else { careAboutCard.cardAvatarState = CardAvatarState.inHand; careAboutCard = null; targetOptions = null; controllerState = ControllerState.waiting; } } } } } else if (Input.GetMouseButtonDown(1)) { } else if (Input.GetMouseButtonUp(1)) { } }