예제 #1
0
    public bool Attack(IWand otherPlayer)
    {
        if (power > otherPlayer.GetPower())
        {
            LosePower(power / otherPlayer.GetPower());
            otherPlayer.LosePower(otherPlayer.GetPower() / power);
            return(true);
        }
        else if (power < otherPlayer.GetPower())
        {
            otherPlayer.LosePower(power / otherPlayer.GetPower());
            LosePower(otherPlayer.GetPower() / power);
            return(false);
        }
        else
        {
            bool moneyGreater = money >= otherPlayer.GetMoney();

            if (moneyGreater)
            {
                LoseMoney(otherPlayer.GetMoney() + 1);
                otherPlayer.LoseMoney(otherPlayer.GetMoney());
            }
            else
            {
                otherPlayer.LoseMoney(money + 1);
                LoseMoney(money);
            }
            return(moneyGreater);
        }
    }
예제 #2
0
    // Update GO at x, y from place data
    private void UpdateGO(int x, int y)
    {
        if (placeGOGrid == null)
        {
            return;
        }

        GameObject go = placeGOGrid[x, y];

        if (go != null)
        {
            Destroy(go);
        }

        IPlace place = GetPlace(x, y);

        go      = Instantiate(newPlace, new Vector2(x + offset, y + offset), Quaternion.identity, transform);
        go.name = "Place (" + x + ", " + y + ")";

        // Color place background based on ownership
        if (place.IsOwned())
        {
            IWand owner = place.GetOwner();
            go.transform.Find("Background").gameObject.GetComponent <SpriteRenderer>().color = owner.GetColor();
        }

        // Add sprite based on place type
        int i = Array.IndexOf(typeIndex, place.GetPlaceType());

        if (i != -1)
        {
            go.transform.Find("Type").gameObject.GetComponent <SpriteRenderer>().sprite = typeSprites[i];
        }

        // Takeover costs
        Transform takeOver = go.transform.Find("TakeOver");

        if (place.GetCostP() > 0)
        {
            takeOver.Find("Power").gameObject.GetComponent <TextMesh>().text = "-" + place.GetCostP().ToString();
        }
        else
        {
            Destroy(takeOver.Find("Power").gameObject);
        }

        if (place.GetCostM() > 0)
        {
            takeOver.Find("Money").gameObject.GetComponent <TextMesh>().text = "-" + place.GetCostM().ToString();
        }
        else
        {
            Destroy(takeOver.Find("Money").gameObject);
        }

        placeGOGrid[x, y] = go;
    }
예제 #3
0
    public override void Generate()
    {
        IWand owner = GetOwner();

        if (owner != null)
        {
            owner.AddMoney(GetGenM());
            owner.AddPower(GetGenP());
        }
        return;
    }
예제 #4
0
 public void SetOwner(IWand newOwner)
 {
     owned = true;
     owner = newOwner;
 }
예제 #5
0
 public virtual bool TakeOver(IWand player)
 {
     return(false);
 }