예제 #1
0
    private GameEntity CreateBarracks(EntitasInit unityObject)
    {
        GameEntity ge = CreateCommon(unityObject);

        ge.AddHealth(40);
        ge.isCanBuildVehicle = true;

        return(ge);
    }
예제 #2
0
    private GameEntity CreateBase(EntitasInit unityObject)
    {
        GameEntity ge = CreateCommon(unityObject);

        ge.AddHealth(120);
        ge.isCanBuildTower    = true;
        ge.isCanBuildBarracks = true;
        return(ge);
    }
예제 #3
0
    private GameEntity CreateVehicle(EntitasInit unityObject)
    {
        GameEntity ge = CreateCommon(unityObject);

        ge.AddNavigable(90f, .5f);
        ge.AddHealth(10);
        ge.AddWeaponRotation(0);
        ge.AddWeapon(2, 45, 2f, 1); //turret has half turnrate of vehicle to illustrate correction

        return(ge);
    }
예제 #4
0
    private GameEntity CreateTurret(EntitasInit unityObject)
    {
        GameEntity ge = CreateCommon(unityObject);

        ge.isSelectable = true;
        ge.AddHealth(50);
        ge.AddWeapon(3, 90f, 2f, 2);
        ge.AddWeaponRotation(0f);
        ge.isAutoAttack = true; //this turret automatically engages enemies within rage

        return(ge);
    }
예제 #5
0
    public GameEntity CreateBlueprint(EntitasInit UnityObject)
    {
        switch (UnityObject.EntitasBlueprint)
        {
        case EntitasPresetEnum.BASE: return(CreateBase(UnityObject));

        case EntitasPresetEnum.BARRACKS: return(CreateBarracks(UnityObject));

        case EntitasPresetEnum.VEHICLE: return(CreateVehicle(UnityObject));

        case EntitasPresetEnum.TURRET: return(CreateTurret(UnityObject));
        }

        Debug.LogError("Preset code couldn't create Entity for " + UnityObject.name);
        return(null);
    }
예제 #6
0
    private GameEntity CreateCommon(EntitasInit unityObject)
    {
        GameEntity ge = _game.CreateEntity();

        ge.AddGameObject(unityObject.gameObject);

        Vector3    pos = unityObject.transform.position;
        Quaternion rot = unityObject.transform.rotation;

        ge.AddWorldCoordinates(pos.x, pos.y, pos.z, rot.x, rot.y, rot.z, rot.w);

        HexCellBehaviour cell = _grid.GetCell(_grid.axial_to_cube(_grid.pixel_to_axial(unityObject.transform.position)));

        if (cell != null)
        {
            int id = cell.GetComponent <EntitasLink>().id;
            ge.AddLocation(cell, id);
        }

        HexSelectable selectable = unityObject.GetComponent <HexSelectable>();

        if (selectable != null)
        {
            ge.isSelectable = true;
        }

        TeamColor team = unityObject.GetComponent <TeamColor>();

        if (team != null)
        {
            ge.AddTeam(team.teamNr);
        }

        //now that the entity has been created with a unique ID,
        //put this ID on the unity GameObject for easy reference:
        EntitasLink el = unityObject.gameObject.AddComponent <EntitasLink>();

        el.id = ge.iD.value;

        return(ge);
    }