Beispiel #1
0
    IEnumerator initMoveTroopsAction(Base b, int numTroops)
    {
        WWWForm wwwform = new WWWForm();

        wwwform.AddField("username", b.username);
        wwwform.AddField("baseId1", GenerateWorld.instance.lastBase.baseId);
        wwwform.AddField("baseId2", b.baseId);
        wwwform.AddField("numTroops", numTroops);
        WWW request = new WWW("localhost:8080/myapp/world/troops/startMove", wwwform);

        yield return(request);

        if (request.text.Equals(""))
        {
            Debug.Log("Move troops action invalid");
        }
        else
        {
            MoveTroopsCommand mtc = JsonMapper.ToObject <MoveTroopsCommand>(request.text);
            mtc.portal.gameObject.GetComponent <Renderer>().material = PortalHandler.instance.portalBuildingMaterial;
            if (mtc.portal.base1.baseId == b.baseId)
            {
                mtc.troopsToMove *= -1;
            }
            mtc.portal.troopsToMove += mtc.troopsToMove;
            MoveTroopsAction a = new MoveTroopsAction(b.username, mtc.portalId);
            moveTroopsActions.Add(a);
        }
    }
Beispiel #2
0
    IEnumerator finishMoveTroops(MoveTroopsAction a)
    {
        WWWForm wwwform = new WWWForm();

        wwwform.AddField("username", a.username);
        wwwform.AddField("portalId", a.p.portalId);
        WWW request = new WWW("localhost:8080/myapp/world/troops/finishMove", wwwform);

        yield return(request);

        if (request.text.Equals(""))
        {
            Debug.Log("Finish move troops failed");
        }
        else
        {
            // Display finish message
            GenerateWorld.instance.message.text = request.text;
        }
    }
Beispiel #3
0
    IEnumerator restartMoveTroopsActions()
    {
        WWWForm wwwform = new WWWForm();

        wwwform.AddField("username", Globals.username);
        WWW request = new WWW("localhost:8080/myapp/world/troops/restartMove", wwwform);

        yield return(request);

        MoveTroopsCommand[] mtcs = JsonMapper.ToObject <MoveTroopsCommand[]>(request.text);
        foreach (MoveTroopsCommand mtc in mtcs)
        {
            // need to do this so we get the portal that belongs to the portalObj
            mtc.portal.troopsToMove += mtc.troopsToMove;
            mtc.portal.gameObject.GetComponent <Renderer>().material = PortalHandler.instance.portalBuildingMaterial;
            MoveTroopsAction a = new MoveTroopsAction(Globals.username, mtc.portal.portalId);

            // Update values based on Time.DeltaTime
            a.overflowTroopsMoved += ((CurrentTime.currentTimeMillis() - mtc.portal.lastMoveUpdate) / 1000) *
                                     mtc.portal.flowRate;
            int wholeUnitsMoved = (int)Mathf.Floor(a.overflowTroopsMoved);
            if (wholeUnitsMoved > Mathf.Abs(mtc.portal.troopsToMove))
            {
                wholeUnitsMoved = Mathf.Abs(mtc.portal.troopsToMove);
            }
            if (wholeUnitsMoved > 0)
            {
                if (mtc.portal.troopsToMove < 0)
                {
                    wholeUnitsMoved *= -1;
                }
                // Update base text wrappers
                a.p.base1.units         -= wholeUnitsMoved;
                a.p.base2.units         += wholeUnitsMoved;
                a.overflowTroopsMoved   -= Mathf.Abs(wholeUnitsMoved);
                mtc.portal.troopsToMove -= wholeUnitsMoved;
            }

            moveTroopsActions.Add(a);
        }
    }