Beispiel #1
0
        public List <FactionInfo> GetAllOfDiplomacy(FactionInfo faction, FactionDiplomacy diplomacy)
        {
            List <FactionInfo> returnvalue = new List <FactionInfo>();
            int dval = (int)diplomacy;
            FactionDiplomacy ovalue;

            for (int other = 0; other < factioncount; ++other)
            {
                if (faction.factionNumber != other)
                {
                    long key = GetDiplomacyKey(faction.factionNumber, other);
                    if (factionDiplomacies.TryGetValue(key, out ovalue))
                    {
                        if ((dval & (int)ovalue) == dval)
                        {
                            returnvalue.Add(new FactionInfo(other, this));
                        }
                    }
                    else
                    {
                        factionDiplomacies[key] = FactionDiplomacy.Neutral;
                        if ((dval & (int)FactionDiplomacy.Neutral) == dval)
                        {
                            returnvalue.Add(new FactionInfo(other, this));
                        }
                    }
                }
            }
            return(returnvalue);
        }
Beispiel #2
0
    public void ChangeSceneToDiploWar()
    {
        SaveAndLoad      saveAndLoad      = FindObjectOfType <SaveAndLoad>();
        FactionDiplomacy factionDiplomacy = FindObjectOfType <FactionDiplomacy>();

        GameManager.gameManager.agentsToCombat = factionDiplomacy.agentsRecruited;
        saveAndLoad.SaveGame();
        SceneManager.LoadScene("DiplomacyWar");
    }
Beispiel #3
0
        public bool IsDiplomacy(FactionInfo first, FactionInfo second, FactionDiplomacy diplomacy)
        {
            long             key = GetDiplomacyKey(first.factionNumber, second.factionNumber);
            FactionDiplomacy returnvalue;
            int dval = (int)diplomacy;

            if (factionDiplomacies.TryGetValue(key, out returnvalue))
            {
                return((dval & (int)(returnvalue)) == dval);
            }
            else
            {
                return((dval & (int)(factionDiplomacies[key] = FactionDiplomacy.Neutral)) == dval);
            }
        }
Beispiel #4
0
    void Awake()
    {
        menuUI.SetActive(false);
        unitMenuUI.SetActive(false);
        State   = ControlState.DESELECTED;
        Heights = new Dictionary <MapCoordinate, int>();

        // Register Tiles
        MBTile[] tileList = FindObjectsOfType <MBTile>();
        foreach (MBTile tile in tileList)
        {
            Vector3       tilePos       = tile.transform.position;
            MapCoordinate mapCoordinate = new MapCoordinate(Mathf.RoundToInt(tilePos.x), Mathf.RoundToInt(tilePos.z));
            tiles.Add(mapCoordinate, tile);
            Heights.Add(mapCoordinate, Mathf.RoundToInt(tilePos.y - tile.transform.localPosition.y));
            tile.setStage(this);
        }

        // Register Factions
        HashSet <Faction> factions = new HashSet <Faction>();

        foreach (MBUnit mbUnit in FindObjectsOfType <MBUnit>())
        {
            factions.Add(mbUnit.Unit.Faction);
        }

        FactionDiplomacy = new FactionDiplomacy(factions);

        // Register Units
        foreach (MBUnit mbUnit in FindObjectsOfType <MBUnit>())
        {
            Vector3       unitPos       = mbUnit.transform.position;
            MapCoordinate mapCoordinate = new MapCoordinate(Mathf.RoundToInt(unitPos.x), Mathf.RoundToInt(unitPos.z));
            units.Add(mbUnit, mapCoordinate);
            mbUnit.setStage(this);
            FactionDiplomacy.RegisterUnit(mbUnit);
        }
    }
Beispiel #5
0
 public List <FactionInfo> GetAllOfDiplomacy(FactionDiplomacy diplomacy)
 {
     return(DefaultFactionCollection.GetAllOfDiplomacy(this, diplomacy));
 }
Beispiel #6
0
 public void SetDiplomacy(FactionInfo first, FactionInfo second, FactionDiplomacy diplomacy)
 {
     factionDiplomacies[GetDiplomacyKey(first.factionNumber, second.factionNumber)] = diplomacy;
 }
 private void Start()
 {
     mOver            = FindObjectOfType <MouseOver>();
     factionDiplomacy = FindObjectOfType <FactionDiplomacy>();
 }
 private void Start()
 {
     //listToShowInUI = new List<DiplomacyAgent>();
     factionDiplomacy = FindObjectOfType <FactionDiplomacy>();
 }