Create a mod dll for cnc
This commit is contained in:
@@ -256,7 +256,6 @@
|
|||||||
<Compile Include="Traits\StoresOre.cs" />
|
<Compile Include="Traits\StoresOre.cs" />
|
||||||
<Compile Include="Traits\Submarine.cs" />
|
<Compile Include="Traits\Submarine.cs" />
|
||||||
<Compile Include="Traits\TakeCover.cs" />
|
<Compile Include="Traits\TakeCover.cs" />
|
||||||
<Compile Include="Traits\TiberiumRefinery.cs" />
|
|
||||||
<Compile Include="Traits\TraitsInterfaces.cs" />
|
<Compile Include="Traits\TraitsInterfaces.cs" />
|
||||||
<Compile Include="Traits\Turreted.cs" />
|
<Compile Include="Traits\Turreted.cs" />
|
||||||
<Compile Include="Traits\Unit.cs" />
|
<Compile Include="Traits\Unit.cs" />
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace OpenRa.Traits.Activities
|
namespace OpenRa.Traits.Activities
|
||||||
{
|
{
|
||||||
class Harvest : IActivity
|
public class Harvest : IActivity
|
||||||
{
|
{
|
||||||
public IActivity NextActivity { get; set; }
|
public IActivity NextActivity { get; set; }
|
||||||
bool isHarvesting = false;
|
bool isHarvesting = false;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
namespace OpenRa.Traits.Activities
|
namespace OpenRa.Traits.Activities
|
||||||
{
|
{
|
||||||
class Turn : IActivity
|
public class Turn : IActivity
|
||||||
{
|
{
|
||||||
public IActivity NextActivity { get; set; }
|
public IActivity NextActivity { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace OpenRa.Traits
|
|||||||
public object Create(Actor self) { return new Harvester(); }
|
public object Create(Actor self) { return new Harvester(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
class Harvester : IIssueOrder, IResolveOrder, IPips
|
public class Harvester : IIssueOrder, IResolveOrder, IPips
|
||||||
{
|
{
|
||||||
[Sync]
|
[Sync]
|
||||||
public int oreCarried = 0; /* sum of these must not exceed capacity */
|
public int oreCarried = 0; /* sum of these must not exceed capacity */
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
using OpenRa.Traits.Activities;
|
|
||||||
|
|
||||||
namespace OpenRa.Traits
|
|
||||||
{
|
|
||||||
class TiberiumRefineryInfo : ITraitInfo
|
|
||||||
{
|
|
||||||
public object Create(Actor self) { return new TiberiumRefinery(self); }
|
|
||||||
}
|
|
||||||
|
|
||||||
class TiberiumRefinery : IAcceptOre
|
|
||||||
{
|
|
||||||
Actor self;
|
|
||||||
public TiberiumRefinery(Actor self)
|
|
||||||
{
|
|
||||||
this.self = self;
|
|
||||||
self.World.AddFrameEndTask(
|
|
||||||
w =>
|
|
||||||
{ /* create the free harvester! */
|
|
||||||
var harvester = w.CreateActor("harv", self.Location + new int2(0, 2), self.Owner);
|
|
||||||
var unit = harvester.traits.Get<Unit>();
|
|
||||||
var mobile = harvester.traits.Get<Mobile>();
|
|
||||||
unit.Facing = 64;
|
|
||||||
harvester.QueueActivity(new Harvest());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public int2 DeliverOffset { get { return new int2(0, 2); } }
|
|
||||||
public void OnDock(Actor harv, DeliverOre dockOrder)
|
|
||||||
{
|
|
||||||
// Todo: need to be careful about cancellation and multiple harvs
|
|
||||||
var unit = harv.traits.Get<Unit>();
|
|
||||||
harv.QueueActivity(new Move(self.Location + new int2(1,1), self));
|
|
||||||
harv.QueueActivity(new Turn(96));
|
|
||||||
harv.QueueActivity( new CallFunc( () =>
|
|
||||||
self.traits.Get<RenderBuilding>().PlayCustomAnimThen(self, "active", () => {
|
|
||||||
harv.traits.Get<Harvester>().Deliver(harv, self);
|
|
||||||
harv.QueueActivity(new Move(self.Location + DeliverOffset, self));
|
|
||||||
harv.QueueActivity(new Harvest());
|
|
||||||
})));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -51,7 +51,6 @@
|
|||||||
<Compile Include="Activities\Infiltrate.cs" />
|
<Compile Include="Activities\Infiltrate.cs" />
|
||||||
<Compile Include="Activities\LayMine.cs" />
|
<Compile Include="Activities\LayMine.cs" />
|
||||||
<Compile Include="Activities\Steal.cs" />
|
<Compile Include="Activities\Steal.cs" />
|
||||||
<Compile Include="ProductionAirdrop.cs" />
|
|
||||||
<Compile Include="C4Demolition.cs" />
|
<Compile Include="C4Demolition.cs" />
|
||||||
<Compile Include="Effects\CrateEffect.cs" />
|
<Compile Include="Effects\CrateEffect.cs" />
|
||||||
<Compile Include="Effects\GpsSatellite.cs" />
|
<Compile Include="Effects\GpsSatellite.cs" />
|
||||||
|
|||||||
@@ -1,63 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using OpenRa.GameRules;
|
|
||||||
using OpenRa.Traits.Activities;
|
|
||||||
using OpenRa.Traits;
|
|
||||||
|
|
||||||
namespace OpenRa.Mods.RA
|
|
||||||
{
|
|
||||||
public class ProductionAirdropInfo : ProductionInfo
|
|
||||||
{
|
|
||||||
public override object Create(Actor self) { return new ProductionAirdrop(self); }
|
|
||||||
}
|
|
||||||
|
|
||||||
class ProductionAirdrop : Production
|
|
||||||
{
|
|
||||||
public ProductionAirdrop(Actor self) : base(self) { }
|
|
||||||
|
|
||||||
public override bool Produce( Actor self, ActorInfo producee )
|
|
||||||
{
|
|
||||||
var location = CreationLocation(self, producee);
|
|
||||||
var owner = self.Owner;
|
|
||||||
|
|
||||||
// Start at the edge of the map, to the right of the airfield
|
|
||||||
var startPos = new int2(owner.World.Map.XOffset + owner.World.Map.Width, self.Location.Y);
|
|
||||||
var endPos = new int2(owner.World.Map.XOffset, self.Location.Y);
|
|
||||||
var unloadOffset = new int2(1,1);
|
|
||||||
var exitOffset = new int2(3,1);
|
|
||||||
|
|
||||||
var rp = self.traits.GetOrDefault<RallyPoint>();
|
|
||||||
owner.World.AddFrameEndTask(w =>
|
|
||||||
{
|
|
||||||
var a = w.CreateActor("C17", startPos, owner);
|
|
||||||
var cargo = a.traits.Get<Cargo>();
|
|
||||||
|
|
||||||
var newUnit = new Actor(self.World, producee.Name, new int2(0, 0), self.Owner);
|
|
||||||
cargo.Load(a, newUnit);
|
|
||||||
|
|
||||||
a.CancelActivity();
|
|
||||||
a.QueueActivity(new Land(self.CenterLocation));
|
|
||||||
a.QueueActivity(new CallFunc(() =>
|
|
||||||
{
|
|
||||||
var actor = cargo.Unload(self);
|
|
||||||
self.World.AddFrameEndTask(ww =>
|
|
||||||
{
|
|
||||||
ww.Add(actor);
|
|
||||||
actor.traits.Get<Mobile>().TeleportTo(actor, self.Location + unloadOffset);
|
|
||||||
newUnit.traits.Get<Unit>().Facing = 192;
|
|
||||||
actor.CancelActivity();
|
|
||||||
actor.QueueActivity(new Move(self.Location + exitOffset, self));
|
|
||||||
actor.QueueActivity(new Move(rp.rallyPoint, 0));
|
|
||||||
|
|
||||||
foreach (var t in self.traits.WithInterface<INotifyProduction>())
|
|
||||||
t.UnitProduced(self, actor);
|
|
||||||
});
|
|
||||||
}));
|
|
||||||
a.QueueActivity(new Fly(endPos));
|
|
||||||
a.QueueActivity(new RemoveSelf());
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -19,6 +19,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRa.Mods.RA", "OpenRa.Mo
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRa.Mods.Aftermath", "OpenRa.Mods.Aftermath\OpenRa.Mods.Aftermath.csproj", "{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRa.Mods.Aftermath", "OpenRa.Mods.Aftermath\OpenRa.Mods.Aftermath.csproj", "{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenRa.Mods.Cnc", "OpenRa.Mods.Cnc\OpenRa.Mods.Cnc.csproj", "{2881135D-4D62-493E-8F83-5EEE92CCC6BE}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -61,6 +63,10 @@ Global
|
|||||||
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Release|Any CPU.Build.0 = Release|Any CPU
|
{2E1F8D8B-AEF5-4BCE-A95C-50223A0C7331}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{2881135D-4D62-493E-8F83-5EEE92CCC6BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Packages:
|
|||||||
mods/cnc/packages/cclocal.mix
|
mods/cnc/packages/cclocal.mix
|
||||||
mods/cnc/packages/speech.mix
|
mods/cnc/packages/speech.mix
|
||||||
mods/cnc/packages/conquer.mix
|
mods/cnc/packages/conquer.mix
|
||||||
mods/cnc/packages/general.mix
|
# mods/cnc/packages/general.mix
|
||||||
mods/cnc/packages/sounds.mix
|
mods/cnc/packages/sounds.mix
|
||||||
mods/cnc/packages/tempicnh.mix
|
mods/cnc/packages/tempicnh.mix
|
||||||
~main.mix
|
~main.mix
|
||||||
@@ -47,7 +47,8 @@ Sequences:
|
|||||||
mods/cnc/sequences.xml: Obsolete; will disappear once done converting
|
mods/cnc/sequences.xml: Obsolete; will disappear once done converting
|
||||||
|
|
||||||
Assemblies:
|
Assemblies:
|
||||||
mods/ra/OpenRa.Mods.RA.dll: Use the red alert traits
|
mods/cnc/OpenRa.Mods.Cnc.dll: Cnc mod traits
|
||||||
|
mods/ra/OpenRa.Mods.RA.dll: Red alert mod traits
|
||||||
|
|
||||||
|
|
||||||
Maps:
|
Maps:
|
||||||
|
|||||||
Reference in New Issue
Block a user