-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCustomMission.cs
More file actions
93 lines (79 loc) · 4.56 KB
/
CustomMission.cs
File metadata and controls
93 lines (79 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System.Collections;
using GHPC;
using System.Collections.Generic;
using GHPC.Mission;
using GHPC.State;
using GHPC.Vehicle;
using System.Linq;
using GHPC.Mission.Data;
namespace CustomMissionUtility
{
public class CustomMission
{
public Dictionary<UnitClass, List<References.Vehicles>> SpawnOrdersBluFor = new Dictionary<UnitClass, List<References.Vehicles>>
{
[UnitClass.Tank] = new List<References.Vehicles>() { },
[UnitClass.IFV] = new List<References.Vehicles>() { },
[UnitClass.APC] = new List<References.Vehicles>() { },
[UnitClass.Scout] = new List<References.Vehicles>() { },
[UnitClass.Transport] = new List<References.Vehicles>() { },
[UnitClass.FireSupport] = new List<References.Vehicles>() { },
[UnitClass.Command] = new List<References.Vehicles>() { },
[UnitClass.Troops] = new List<References.Vehicles>() { },
[UnitClass.AntiTankTroops] = new List<References.Vehicles>() { },
[UnitClass.AntiAirTroops] = new List<References.Vehicles>() { },
[UnitClass.AntiTankEmplacement] = new List<References.Vehicles>() { },
[UnitClass.MachineGunEmplacement] = new List<References.Vehicles>() { },
[UnitClass.MobileArtillery] = new List<References.Vehicles>() { },
[UnitClass.MobileAntiAir] = new List<References.Vehicles>() { },
[UnitClass.ScoutHelicopter] = new List<References.Vehicles>() { },
[UnitClass.AttackHelicopter] = new List<References.Vehicles>() { },
[UnitClass.TransportHelicopter] = new List<References.Vehicles>() { },
};
public Dictionary<UnitClass, List<References.Vehicles>> SpawnOrdersRedFor = new Dictionary<UnitClass, List<References.Vehicles>>
{
[UnitClass.Tank] = new List<References.Vehicles>() { },
[UnitClass.IFV] = new List<References.Vehicles>() { },
[UnitClass.APC] = new List<References.Vehicles>() { },
[UnitClass.Scout] = new List<References.Vehicles>() { },
[UnitClass.Transport] = new List<References.Vehicles>() { },
[UnitClass.FireSupport] = new List<References.Vehicles>() { },
[UnitClass.Command] = new List<References.Vehicles>() { },
[UnitClass.Troops] = new List<References.Vehicles>() { },
[UnitClass.AntiTankTroops] = new List<References.Vehicles>() { },
[UnitClass.AntiAirTroops] = new List<References.Vehicles>() { },
[UnitClass.AntiTankEmplacement] = new List<References.Vehicles>() { },
[UnitClass.MachineGunEmplacement] = new List<References.Vehicles>() { },
[UnitClass.MobileArtillery] = new List<References.Vehicles>() { },
[UnitClass.MobileAntiAir] = new List<References.Vehicles>() { },
[UnitClass.ScoutHelicopter] = new List<References.Vehicles>() { },
[UnitClass.AttackHelicopter] = new List<References.Vehicles>() { },
[UnitClass.TransportHelicopter] = new List<References.Vehicles>() { },
};
internal Editor Json;
public MissionMetaData MissionMetaData;
public virtual CustomMissionData MissionData { get; set; }
/// <summary>
/// Called when the mission has completely loaded; create units, platoons, etc. here
/// </summary>
public virtual IEnumerator OnMissionFinishedLoading(GameState _) { yield break; }
/// <summary>
/// Called when the mission has begun loading; load in custom assets here
/// </summary>
public virtual void OnMissionStartedLoading() { }
public virtual void UnitSpawnOrders() { }
public virtual IEnumerator MapMarkers(GameState _) { yield break; }
public void CreateSpawnOrder(References.Vehicles id, Faction faction)
{
var spawn_orders = faction == Faction.Blue ? SpawnOrdersBluFor : SpawnOrdersRedFor;
string name = References.GetVehicle(id).GetComponent<Vehicle>().UniqueName;
spawn_orders[CMU.unit_prefab_lookup.AllUnits.Where(o => o.Name == name).First().Class].Add(id);
}
public int GetSpawnOrder(References.Vehicles id, Faction faction) {
var spawn_orders = faction == Faction.Blue ? SpawnOrdersBluFor : SpawnOrdersRedFor;
string name = References.GetVehicle(id).GetComponent<Vehicle>().UniqueName;
return spawn_orders[CMU.unit_prefab_lookup.AllUnits.Where(o => o.Name == name).First().Class].FindIndex(o => o == id);
}
public virtual void MissionData_() { }
}
}