Exemple #1
0
    public void SendBuilderBuild(int builderNO, int builderLevel, IObstacleInfo targetInfo, IMapData mapData)
    {
        GameObject builder = null;

        if (this.m_Builders.ContainsKey(builderNO))
        {
            builder = this.m_Builders[builderNO];
            builder.SetActive(true);
        }
        else
        {
            builder = this.GenerateBuilder(builderNO, builderLevel);
            this.m_Builders.Add(builderNO, builder);
        }


        TilePosition buildPoint = BorderPointHelper.FindValidInflateOneBorderPoint(targetInfo);

        builder.transform.position = PositionConvertor.GetWorldPositionFromActorTileIndex(buildPoint);

        BuilderAI builderAI = builder.GetComponent <BuilderAI>();

        builderAI.MapData   = mapData;
        builderAI.BuilderNO = builderNO;
        builderAI.Build(targetInfo, buildPoint);
    }
Exemple #2
0
    public void SendRunAway()
    {
        List <IBuildingInfo> builderHuts = this.m_BattleSceneHelper.GetBuildings(BuildingType.BuilderHut);

        BuildingType[]         disappearBuildings = ActorPrefabConfig.Instance.GetComponent <ActorConfig>().VillagerDisappearBuildingTypes;
        HashSet <BuildingType> buildings          = new HashSet <BuildingType>();

        foreach (BuildingType building in disappearBuildings)
        {
            buildings.Add(building);
        }

        foreach (KeyValuePair <int, GameObject> builder in this.m_Builders)
        {
            BuilderAI builderAI = builder.Value.GetComponent <BuilderAI>();
            builderAI.RunAway(builderHuts);
        }
        foreach (GameObject villager in this.m_Villagers)
        {
            VillagerAI villagerAI = villager.GetComponent <VillagerAI>();
            villagerAI.RunAway(buildings);
        }
    }
Exemple #3
0
    public void SendBuilderToBuild(int builderNO, int builderLevel, TilePosition builderHutPosition,
                                   IObstacleInfo targetInfo, IMapData mapData)
    {
        GameObject builder = null;

        if (this.m_Builders.ContainsKey(builderNO))
        {
            builder = this.m_Builders[builderNO];
            builder.SetActive(true);
        }
        else
        {
            builder = this.GenerateBuilder(builderNO, builderLevel);
            this.m_Builders.Add(builderNO, builder);
            builder.transform.position = PositionConvertor.GetWorldPositionFromBuildingTileIndex(builderHutPosition);
        }

        BuilderAI builderAI = builder.GetComponent <BuilderAI>();

        builderAI.MapData   = mapData;
        builderAI.BuilderNO = builderNO;
        builderAI.Build(targetInfo);
    }
Exemple #4
0
    public void SendBuilderReturn(int builderNO)
    {
        BuilderAI builder = this.m_Builders[builderNO].GetComponent <BuilderAI>();

        builder.FinishBuild();
    }