当前位置: 首页>>代码示例>>C#>>正文


C# Village.getControlledRegion方法代码示例

本文整理汇总了C#中Village.getControlledRegion方法的典型用法代码示例。如果您正苦于以下问题:C# Village.getControlledRegion方法的具体用法?C# Village.getControlledRegion怎么用?C# Village.getControlledRegion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Village的用法示例。


在下文中一共展示了Village.getControlledRegion方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: splitRegion

    private void splitRegion(Tile splitTile, Village villageToSplit)
    {
        List<List<Tile>> lstRegions = new List<List<Tile>>();
        int oldWood = villageToSplit.getWood ();
        int oldGold = villageToSplit.getGold ();
        Tile oldLocation = villageToSplit.getLocatedAt ();
        Player p = villageToSplit.getPlayer();

        // prep for BFS
        foreach (Tile t in villageToSplit.getControlledRegion()) {
            t.setVisited(false);
        }
        // build connected regions
        foreach (Tile t in splitTile.getNeighbours()) {
            if (t.getVillage()==villageToSplit && !t.getVisited()){
                List<Tile> newRegion = new List<Tile>();
                t.setVisited(true);
                newRegion.Add (t);
                splitBFS (t,villageToSplit,newRegion);
                if (newRegion.Count<3){
                    Neutralize (newRegion);
                } else{
                    lstRegions.Add (newRegion);
                }
            }
        }
        print ("after the bfs");

        if (lstRegions.Count <= 0) {
            Debug.Log ("Inside Regions <= 0");
            oldLocation.gameObject.networkView.RPC ("setLandTypeNet",RPCMode.AllBuffered,(int)LandType.Meadow);
            GameObject meadow = Network.Instantiate (meadowPrefab, new Vector3 (oldLocation.point.x, 0, oldLocation.point.y), meadowPrefab.transform.rotation,0) as GameObject;
            villageToSplit.retireAllUnits();
            Debug.Log ("after retire all units");
            p.networkView.RPC ("removeVillageNet",RPCMode.AllBuffered,villageToSplit.networkView.viewID,p.getColor());
            oldLocation.networkView.RPC ("replaceTilePrefabNet",RPCMode.AllBuffered,meadow.networkView.viewID);
            Debug.Log ("after lstRegions <= 0");
            return; //stop here if no region is big enough
        }

        int splitWood = oldWood/lstRegions.Count;
        int splitGold = oldGold/lstRegions.Count;

        //create new villages
        foreach(List<Tile> region in lstRegions)
        {
            print ("creating new village");
            Vector3 hovelLocation;
            Tile tileLocation;

            if (region.Contains (oldLocation)){
                tileLocation = oldLocation;
                hovelLocation = new Vector3(tileLocation.point.x, 0.1f, tileLocation.point.y);
            } else {
                tileLocation = getTileForRespawn(region);
                hovelLocation = new Vector3(tileLocation.point.x, 0.1f, tileLocation.point.y);
            }

            GameObject newTown = Network.Instantiate(hovelPrefab, hovelLocation, hovelPrefab.transform.rotation, 0) as GameObject;
            Village v = newTown.GetComponent<Village>();
            //tileLocation.replace (newTown);
            tileLocation.networkView.RPC ("switchTilePrefabNet",RPCMode.AllBuffered,newTown.networkView.viewID);
            v.addRegion (region); //adds T<>V and any U<>V

        //			v.setLocation (tileLocation);
            v.gameObject.networkView.RPC ("setLocationNet",RPCMode.AllBuffered,tileLocation.networkView.viewID);
        //			p.addVillage(v);
            p.gameObject.networkView.RPC ("addVillageNet",RPCMode.AllBuffered,v.networkView.viewID,p.getColor ());
        //			v.setControlledBy(p);
            GameManager GM = GameObject.Find ("preserveGM").GetComponent<GameManager>();
            int playerIndex = GM.findPlayerIndex(p);
            v.gameObject.networkView.RPC ("setControlledByNet",RPCMode.AllBuffered,playerIndex);

            if (region.Contains (oldLocation)){
                VillageType vType = villageToSplit.getMyType();
                //v.setMyType(vType);
                v.gameObject.networkView.RPC ("setVillageTypeNet",RPCMode.AllBuffered,(int)vType);
                if (vType == VillageType.Hovel)
                {
        //					newTown.transform.FindChild("Hovel").gameObject.SetActive (true);
        //					newTown.transform.FindChild("Town").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Fort").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Castle").gameObject.SetActive (false);
                    newTown.gameObject.networkView.RPC ("switchPrefabNet",RPCMode.AllBuffered,(int)vType);
                }
                else if (vType == VillageType.Town)
                {
        //					newTown.transform.FindChild("Hovel").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Town").gameObject.SetActive (true);
        //					newTown.transform.FindChild("Fort").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Castle").gameObject.SetActive (false);
                    newTown.gameObject.networkView.RPC ("switchPrefabNet",RPCMode.AllBuffered,(int)vType);

                }
                else if (vType == VillageType.Fort)
                {
        //					newTown.transform.FindChild("Hovel").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Town").gameObject.SetActive (false);
        //					newTown.transform.FindChild("Fort").gameObject.SetActive (true);
        //					newTown.transform.FindChild("Castle").gameObject.SetActive (false);
//.........这里部分代码省略.........
开发者ID:hysoftwareeng,项目名称:MedievalWarfare,代码行数:101,代码来源:VillageManager.cs

示例2: takeCannonDamage

 public void takeCannonDamage(Village v)
 {
     v.networkView.RPC ("setHealthNet", RPCMode.AllBuffered, v.getHealth () - 1);
     if (v.getHealth () <= 0) {
         v.networkView.RPC ("setGoldNet",RPCMode.AllBuffered,0);
         v.networkView.RPC ("setWoodNet",RPCMode.AllBuffered,0);
         v.networkView.RPC ("switchPrefabNet",RPCMode.AllBuffered,(int)VillageType.Hovel);
         Tile respawnLocation = getTileForRespawn(v.getControlledRegion());
         respawnLocation.networkView.RPC ("replaceTilePrefabNet",RPCMode.AllBuffered,v.gameObject);
         networkView.RPC ("moveVillagePrefabNet",RPCMode.AllBuffered,v.networkView.viewID, new Vector3(respawnLocation.point.x, 0.1f, respawnLocation.point.y));
         v.networkView.RPC ("setLocatedAtNet",RPCMode.AllBuffered,respawnLocation.networkView.viewID);
     }
 }
开发者ID:hysoftwareeng,项目名称:MedievalWarfare,代码行数:13,代码来源:VillageManager.cs

示例3: tombstonePhase

 public void tombstonePhase(Village v)
 {
     List<Tile> controlledRegion = v.getControlledRegion ();
     foreach (Tile tile in controlledRegion) {
         LandType currentTileType = tile.getLandType ();
         if (currentTileType == LandType.Tombstone && !tile.hasRoad)
         {
             tile.gameObject.networkView.RPC("setLandTypeNet",RPCMode.AllBuffered, (int)LandType.Trees);
             GameObject tree = Network.Instantiate (treePrefab, new Vector3 (tile.point.x, 0, tile.point.y), treePrefab.transform.rotation, 0) as GameObject;
             tile.gameObject.networkView.RPC("replaceTilePrefabNet",RPCMode.AllBuffered, tree.networkView.viewID);
         }
     }
 }
开发者ID:hysoftwareeng,项目名称:MedievalWarfare,代码行数:13,代码来源:VillageManager.cs

示例4: incomePhase

    public void incomePhase(Village v)
    {
        Debug.Log ("in IncomePhase");
        List<Tile> controlledRegion = v.getControlledRegion ();
        foreach (Tile tile in controlledRegion)
        {
            LandType currentTileType = tile.getLandType();
            if (currentTileType == LandType.Grass)
            {
                v.gameObject.networkView.RPC ("addGoldNet",RPCMode.AllBuffered,1);

            }
            if (currentTileType == LandType.Meadow)
            {

                v.gameObject.networkView.RPC ("addGoldNet",RPCMode.AllBuffered,2);
            }
        }
    }
开发者ID:hysoftwareeng,项目名称:MedievalWarfare,代码行数:19,代码来源:VillageManager.cs


注:本文中的Village.getControlledRegion方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。