Beispiel #1
0
    public static void positionAndParent_Meeple(GameObject Meeple, HexaPos position)
    {
        GameObject par  = GameObject.Find("MeepleCollection");
        GameObject fath = new GameObject(Meeple.GetComponent <Meeple>().meepleName);

        fath.transform.localScale = par.transform.lossyScale;
        fath.transform.position   = par.transform.position;


        Meeple.transform.localScale       = par.transform.lossyScale;
        Meeple.transform.position         = par.transform.position;
        Meeple.transform.localEulerAngles = new Vector3(0, 180, 0);

        //Meeple.transform.Translate(new Vector3(0, 0.4f, 0), Space.Self);
        fath.transform.parent   = par.transform;
        Meeple.transform.parent = fath.transform;
        setMeeplePos(Meeple, position);

        Meeple mip = Meeple.GetComponent <Meeple>();

        if (mip.GetType().IsSubclassOf(typeof(Companion)))
        {
            Companion c = Meeple.GetComponent <Companion>();
            if (c.GetType().Name != "PackAnimal")
            {
                c.setFoodPackages_hpBar();
            }
        }
    }
Beispiel #2
0
    public void fight(Meeple _target)
    {
        if (_target.GetType().IsSubclassOf(typeof(Companion)) || _target.GetType() == typeof(Companion))
        {
            int       rolledValue = SceneHandler.rollDice(diceValue);
            Companion targetComp  = (Companion)_target;

            Debug.Log(meepleName + " strikes " + _target.meepleName + " with a " + rolledValue);

            targetComp.damaged(rolledValue);
        }
        else
        {
            Debug.Log(meepleName + " strikes " + _target.meepleName);
            _target.Alive = false;
        }


        //Todo: Implememnt actionOutstanding if neccessary. As example when queded intelligent interaction is needed from opponent side.
        //hasActionOutstanding = false;
    }
Beispiel #3
0
    public static void setMeeplePos(GameObject meepleObj, HexaPos position)
    {
        Meeple meeple = meepleObj.GetComponentInChildren <Meeple>();

        smallMap[meeple.Pos.x, meeple.Pos.y].GetComponent <innerTile>().meep = null;

        meepleObj.transform.parent.transform.localPosition = Map.MapTileToPosition(position);
        meeple.Pos = position;

        if (!(position.x < 0 || position.x > 14 || position.y < 0 || position.y > 14))
        {
            smallMap[position.x, position.y].GetComponent <innerTile>().meep = meeple;
        }

        if (activeMode == GameMode.TACTICAL && meeple.GetType().IsSubclassOf(typeof(Companion)))
        {
            activeCompanion.HasActionOutstanding = false;
        }

        highlightUnguidedPackAnimals();
    }
Beispiel #4
0
    void OnMouseDown()
    {
        if (isActive)
        {
            Map.highlightAllInnerTiles(false);

            if (meep == null && SceneHandler.meeples.Contains(SceneHandler.activeCompanion))
            {
                SceneHandler.setMeeplePos(SceneHandler.activeCompanion.gameObject, new HexaPos(posX, posY));

                GameObject  tileHolder = GameObject.Find("tileHolder");
                SoundHelper sh         = tileHolder.GetComponent <SoundHelper>();
                sh.Play("run");
            }
            else if (meep == null && SceneHandler.activeMode == GameMode.PREPARATION)
            {
                Type compType = SceneHandler.activeCompanion.GetType();

                switch (compType.ToString())
                {
                case "Mercenary":
                    SceneHandler.createMeeple <Mercenary>("Mercenary", new HexaPos(posX, posY));
                    break;

                case "Hunter":
                    SceneHandler.createMeeple <Hunter>("Mercenary", new HexaPos(posX, posY));
                    break;

                case "HuntedAnimal":
                    SceneHandler.createMeeple <HuntedAnimal>("Mercenary", new HexaPos(posX, posY));
                    break;

                case "Healer":
                    SceneHandler.createMeeple <Healer>("Mercenary", new HexaPos(posX, posY));
                    break;

                case "Scout":
                    SceneHandler.createMeeple <Scout>("Mercenary", new HexaPos(posX, posY));
                    break;

                case "PackAnimal":
                    SceneHandler.createMeeple <PackAnimal>("Mercenary", new HexaPos(posX, posY));
                    break;

                default:
                    break;
                }
            }
            else if (meep.GetType() == typeof(Opponent) && SceneHandler.activeTacticalGame.GetType() == typeof(BattleGround))
            {
                Mercenary merc = (Mercenary)SceneHandler.activeCompanion;

                int dist = Map.distance(meep.Pos, merc.Pos);
                int rnd  = SceneHandler.rollDice(10);
                Debug.Log(rnd + " " + dist);
                if (rnd >= dist)
                {
                    merc.fight(meep.GetComponent <Opponent>());
                }
                merc.HasActionOutstanding = false;
            }
            else if (meep.GetType() == typeof(HuntedAnimal) && SceneHandler.activeTacticalGame.GetType() == typeof(HuntingGround))
            {
                Debug.Log("HUNT");
                Hunter hunter = (Hunter)SceneHandler.activeCompanion;
                SceneHandler.gainProviant(hunter.hunt(meep.GetComponent <HuntedAnimal>()));
            }

            SceneHandler.activeCompanion = null;
        }
    }