예제 #1
0
 public MapPoint(Coordinate point, int index, string name, MapPointType type, double?speedLimit = null)
 {
     this.Point      = point;
     this.Index      = index;
     this.Name       = name;
     this.PointType  = type;
     this.SpeedLimit = speedLimit;
     this.Properties = new Dictionary <string, object>();
 }
예제 #2
0
    public void TEST_MakeNewPoint(MapPointType mmt)
    {
        int x  = Random.Range(0, mapSectors.Length);
        var rs = mapSectors[x];

        if (rs == null)
        {
            AddNewSector((byte)x, mmt, Environment.defaultEnvironment);
        }
    }
예제 #3
0
    public static MapPoint CreatePointOfType(float i_angle, float i_height, MapPointType mtype)
    {
        switch (mtype)
        {
        case MapPointType.MyCity:
        case MapPointType.FlyingExpedition:
            return(new MapPoint(i_angle, i_height, mtype));

        case MapPointType.Star:
            return(new SunPoint(i_angle, i_height, GameMaster.realMaster.globalMap.ascension));

        case MapPointType.Unknown:
        case MapPointType.Station:
        case MapPointType.Wreck:
        case MapPointType.Island:
        case MapPointType.SOS:
        case MapPointType.Portal:
        case MapPointType.Colony:
        case MapPointType.Wiseman:
        case MapPointType.Wonder:
        case MapPointType.Resources:
            float f = Random.value;
            var   p = Path.NoPath;
            if (f > 0.1f)
            {
                if (f > 0.7f)
                {
                    p = Path.TechPath;
                }
                else
                {
                    if (f > 0.4f)
                    {
                        p = Path.SecretPath;
                    }
                    else
                    {
                        p = Path.LifePath;
                    }
                }
            }
            return(new PointOfInterest(i_angle, i_height, mtype, p));

        case MapPointType.QuestMark:
            return(new MapPoint(i_angle, i_height, mtype));

        default:
            return(new MapPoint(i_angle, i_height, mtype));
        }
    }
예제 #4
0
    private void AddNewSector(byte index, MapPointType mtype, Environment e)
    {
        if (mapSectors[index] != null)
        {
            RemoveSector(index);
        }
        Vector2  spos   = GetSectorPosition(index);
        MapPoint mpoint = MapPoint.CreatePointOfType(spos.x, spos.y, mtype);

        AddPoint(mpoint, false);
        RingSector rs = new RingSector(mpoint, e);

        mapSectors[index] = rs;
        actionsHash++;
    }
예제 #5
0
 public static int generateCount(MapPointType mpt)
 {
     if (MapPointType.BOSS.Equals(mpt))
     {
         return(1);
     }
     if (MapPointType.SKIRMISH.Equals(mpt))
     {
         return(Random.Range(2, 4));
     }
     if (MapPointType.ARMY.Equals(mpt))
     {
         return(Random.Range(4, 6));
     }
     return(0);
 }
 public void SetMapPointInfoTitleText(MapPointType mapPointType)
 {
     if (mapPointType == MapPointType.BATTLE)
     {
         mapPointInfoTitleText.text = "Battle";
     }
     if (mapPointType == MapPointType.ELITEBATTLE)
     {
         mapPointInfoTitleText.text = "Battle Elite";
     }
     else if (mapPointType == MapPointType.RANDOM)
     {
         mapPointInfoTitleText.text = "Random";
     }
     else if (mapPointType == MapPointType.SAVE)
     {
         mapPointInfoTitleText.text = "Save";
     }
     else if (mapPointType == MapPointType.SHOP)
     {
         mapPointInfoTitleText.text = "Shop";
     }
     else if (mapPointType == MapPointType.MINIBOSS)
     {
         mapPointInfoTitleText.text = "Mini Boss";
     }
     else if (mapPointType == MapPointType.TREASURE)
     {
         mapPointInfoTitleText.text = "Treasure";
     }
     else if (mapPointType == MapPointType.END)
     {
         mapPointInfoTitleText.text = "Finale";
     }
     else if (mapPointType == MapPointType.NONE ||
              mapPointType == MapPointType.START ||
              mapPointType == MapPointType.END)
     {
         mapPointInfoTitleText.text = "";
     }
 }
    public static Rect GetMarkerRect(MapPointType mtype)
    {
        float p = 0.25f;

        switch (mtype)
        {
        case MapPointType.MyCity: return(new Rect(p, 0, p, p));

        case MapPointType.Station: return(new Rect(0, p, p, p));

        case MapPointType.Wreck: return(new Rect(p, p, p, p));

        case MapPointType.FlyingExpedition: return(new Rect(2 * p, p, p, p));

        case MapPointType.Island: return(new Rect(3 * p, p, p, p));

        case MapPointType.SOS: return(new Rect(0, 2 * p, p, p));

        case MapPointType.Portal: return(new Rect(p, 2 * p, p, p));

        case MapPointType.QuestMark: return(new Rect(2 * p, 2 * p, p, p));

        case MapPointType.Colony: return(new Rect(3 * p, 2 * p, p, p));

        case MapPointType.Star: return(new Rect(0, 3 * p, p, p));

        case MapPointType.Wiseman: return(new Rect(p, 3 * p, p, p));

        case MapPointType.Wonder: return(new Rect(2 * p, 3 * p, p, p));

        case MapPointType.Resources: return(new Rect(3 * p, 3 * p, p, p));

        case MapPointType.Unknown:
        default:
            return(new Rect(0, 0, p, p));
        }
    }
예제 #8
0
 public MovingMapPoint(float i_angle, float i_height, byte ring, MapPointType mtype) : base(i_angle, i_height, mtype)
 {
     moveVector = Vector2.zero;
 }
예제 #9
0
    protected MapPoint(float i_angle, float i_height, MapPointType mtype)
    {
        ID        = nextID++;
        angle     = i_angle;
        height    = i_height;
        ringIndex = GameMaster.realMaster.globalMap.DefineRing(height);
        type      = mtype;

        switch (mtype)
        {
        case MapPointType.Unknown:
            stability = Random.value * 0.3f;
            break;

        case MapPointType.MyCity:
            stability = 1f;
            break;

        case MapPointType.Star:
            stability = 0.5f + Random.value * 0.4f;
            break;

        case MapPointType.Station:
            stability = 0.5f;
            break;

        case MapPointType.Wreck:
            stability = 0.1f + 0.23f * Random.value;
            break;

        case MapPointType.FlyingExpedition:
            stability = 1f;
            break;     // flyingExpedition.expedition.sectorCollapsingTest

        case MapPointType.Island:
            stability = 0.5f + Random.value * 0.2f;
            break;

        case MapPointType.SOS:
            stability = Random.value * 0.05f;
            break;

        case MapPointType.Portal:
            stability = 0.1f + Random.value * 0.3f;
            break;

        case MapPointType.QuestMark:
            stability = 1f;
            break;

        case MapPointType.Colony:
            stability = 0.4f + Random.value * 0.2f;
            break;

        case MapPointType.Wiseman:
            stability = 0.5f + Random.value * 0.25f;
            break;

        case MapPointType.Wonder:
            stability = Random.value;
            break;

        case MapPointType.Resources:
            stability = 0.2f + Random.value * 0.3f;
            break;
        }
        destroyed = false;
    }
예제 #10
0
        public const string WetSection           = "21600";       //湿滑路段

        #endregion
        public static string GetExamItemCode(MapPointType pointType)
        {
            switch (pointType)
            {
            case MapPointType.TurnLeft:
                return(TurnLeft);

            case MapPointType.StraightThrough:
                return(StraightThrough);

            case MapPointType.TurnRight:
                return(TurnRight);

            case MapPointType.SharpTurn:
                return(SharpTurn);

            case MapPointType.PedestrianCrossing:
                return(PedestrianCrossing);

            case MapPointType.SchoolArea:
                return(SchoolArea);

            case MapPointType.BusArea:
                return(BusArea);

            case MapPointType.StraightDriving:
                return(StraightDriving);

            case MapPointType.Overtaking:
                return(Overtaking);

            case MapPointType.ChangeLines:
                return(ChangeLanes);

            case MapPointType.Meeting:
                return(Meeting);

            case MapPointType.PullOver:
                return(PullOver);

            case MapPointType.TurnRound:
                return(TurnRound);

            case MapPointType.ModifiedGear:
                return(ModifiedGear);

            //case MapPointType.AddGear:
            //    return AddGear;
            case MapPointType.Roundabout:
                return(Roundabout);

            case MapPointType.NextItem:
                return(NextItem);

            case MapPointType.StartSpeedLimit:
                return(SpeedLimit);

            case MapPointType.PedestrianCrossingHasPeople:
                return(PedestrianCrossingHasPeople);

            case MapPointType.SlowSpeed:
                return(SlowSpeed);

            case MapPointType.OvertakeChangeMeeting:
                return(OvertakeChangeMeeting);

            case MapPointType.TurnRightVoice:
                return(TurnRightVoice);

            default:
                return(string.Empty);
            }
        }
예제 #11
0
 public PointOfInterest(float i_angle, float i_height, MapPointType mtype, Path i_path) : base(i_angle, i_height, mtype)
 {
     difficulty = CalculateDifficulty();
     path       = i_path;
 }
예제 #12
0
    public MapPointType PickMainPointType()
    {
        MapPointType[] list = new MapPointType[4];
        switch (presetType)
        {
        case EnvironmentPreset.Ocean:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.SOS;
            list[2] = MapPointType.Island;
            list[3] = MapPointType.Wonder;
            break;

        case EnvironmentPreset.Meadows:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.Station;
            list[3] = MapPointType.Colony;
            break;

        case EnvironmentPreset.WhiteSpace:
            list[0] = MapPointType.Star;
            list[1] = MapPointType.Wiseman;
            list[2] = MapPointType.Wonder;
            list[3] = MapPointType.Portal;
            break;

        case EnvironmentPreset.Space:
        case EnvironmentPreset.Ice:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.SOS;
            list[3] = MapPointType.Station;
            break;

        case EnvironmentPreset.Desert:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.SOS;
            list[3] = MapPointType.Island;
            break;

        case EnvironmentPreset.Fire:
            list[0] = MapPointType.Star;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.SOS;
            list[3] = MapPointType.Portal;
            break;

        case EnvironmentPreset.Ruins:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.Wiseman;
            list[3] = MapPointType.Colony;
            break;

        case EnvironmentPreset.Crystal:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wiseman;
            list[2] = MapPointType.Island;
            list[3] = MapPointType.Portal;
            break;

        case EnvironmentPreset.Forest:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Island;
            list[2] = MapPointType.Colony;
            list[3] = MapPointType.Wonder;
            break;

        case EnvironmentPreset.Pollen:
            list[0] = MapPointType.SOS;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.Island;
            list[3] = MapPointType.Portal;
            break;

        case EnvironmentPreset.Pipe:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Wreck;
            list[2] = MapPointType.Star;
            list[3] = MapPointType.Island;
            break;

        default:
            list[0] = MapPointType.Resources;
            list[1] = MapPointType.Island;
            list[2] = MapPointType.Station;
            list[3] = MapPointType.Wonder;
            break;
        }
        float x = Random.value;

        if (x > 0.3f)
        {
            if (x > 0.6f)
            {
                return(list[0]);
            }
            else
            {
                return(list[1]);
            }
        }
        else
        {
            if (x < 0.1f)
            {
                return(list[3]);
            }
            else
            {
                return(list[2]);
            }
        }
    }
예제 #13
0
    public static void DefinePointOfInterest(GlobalMap gmap, out MapPointType mtype, out Path path)
    {
        var ascension = gmap.ascension;

        ((MapPointType pointType, Path path)pointInfo, float probability)[] probabilities;