#67 fixed: spinners work again
This commit is contained in:
@@ -50,6 +50,7 @@ namespace OpenRa.Game.GameRules
|
|||||||
public readonly int[] PrimaryOffset = { 0, 0 };
|
public readonly int[] PrimaryOffset = { 0, 0 };
|
||||||
public readonly int[] SecondaryOffset = null;
|
public readonly int[] SecondaryOffset = null;
|
||||||
public readonly int Recoil = 0;
|
public readonly int Recoil = 0;
|
||||||
|
public readonly int[] ScreenSpaceTurretOffset = { 0, 0 };
|
||||||
|
|
||||||
public UnitInfo(string name) { Name = name; }
|
public UnitInfo(string name) { Name = name; }
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,11 @@ namespace OpenRa.Game.Traits
|
|||||||
: base(self)
|
: base(self)
|
||||||
{
|
{
|
||||||
turretAnim = new Animation(self.unitInfo.Name);
|
turretAnim = new Animation(self.unitInfo.Name);
|
||||||
turretAnim.PlayFetchIndex("turret", () => self.traits.Get<Turreted>().turretFacing / 8);
|
if (self.traits.Contains<Turreted>())
|
||||||
|
turretAnim.PlayFetchIndex("turret",
|
||||||
|
() => self.traits.Get<Turreted>().turretFacing / 8);
|
||||||
|
else
|
||||||
|
turretAnim.PlayRepeating("turret"); /* not really a turret; it's a spinner */
|
||||||
}
|
}
|
||||||
|
|
||||||
public override IEnumerable<Pair<Sprite, float2>> Render(Actor self)
|
public override IEnumerable<Pair<Sprite, float2>> Render(Actor self)
|
||||||
|
|||||||
@@ -87,7 +87,9 @@ namespace OpenRa.Game.Traits
|
|||||||
var bodyFacing = self.traits.Get<Mobile>().facing;
|
var bodyFacing = self.traits.Get<Mobile>().facing;
|
||||||
var quantizedFacing = bodyFacing - bodyFacing % ru.anim.CurrentSequence.Length;
|
var quantizedFacing = bodyFacing - bodyFacing % ru.anim.CurrentSequence.Length;
|
||||||
|
|
||||||
return (RotateVectorByFacing(new float2(offset[0], offset[1]), quantizedFacing, .7f) + GetRecoil(self, recoil));
|
return (RotateVectorByFacing(new float2(offset[0], offset[1]), quantizedFacing, .7f) + GetRecoil(self, recoil))
|
||||||
|
+ new float2(self.unitInfo.ScreenSpaceTurretOffset[0],
|
||||||
|
self.unitInfo.ScreenSpaceTurretOffset[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Pair<Sprite, float2> Centered(Sprite s, float2 location)
|
public static Pair<Sprite, float2> Centered(Sprite s, float2 location)
|
||||||
|
|||||||
@@ -33,10 +33,14 @@ Description=Mammoth Tank
|
|||||||
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
|
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
|
||||||
[MRJ]
|
[MRJ]
|
||||||
Description=Radar Jammer
|
Description=Radar Jammer
|
||||||
Traits=Mobile, Turreted, RenderUnitTurreted ; temporary. It's not a turret, it's a spinney-thing
|
Traits=Mobile, RenderUnitTurreted
|
||||||
|
PrimaryOffset=0,4
|
||||||
|
ScreenSpaceTurretOffset=0,-6
|
||||||
[MGG]
|
[MGG]
|
||||||
Description=Mobile Gap Generator
|
Description=Mobile Gap Generator
|
||||||
Traits=Mobile, Turreted, RenderUnitTurreted ; temporary. It's not a turret, it's a spinney-thing
|
Traits=Mobile, RenderUnitTurreted
|
||||||
|
PrimaryOffset=0,6
|
||||||
|
ScreenSpaceTurretOffset=0,-3
|
||||||
[ARTY]
|
[ARTY]
|
||||||
Description=Artillery
|
Description=Artillery
|
||||||
Traits=Mobile, RenderUnit
|
Traits=Mobile, RenderUnit
|
||||||
@@ -49,6 +53,7 @@ Traits=Mobile, McvDeploy, RenderUnit
|
|||||||
[JEEP]
|
[JEEP]
|
||||||
Description=Ranger
|
Description=Ranger
|
||||||
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
|
Traits=Mobile, Turreted, AttackTurreted, RenderUnitTurreted
|
||||||
|
ScreenSpaceTurretOffset=0,-2
|
||||||
[APC]
|
[APC]
|
||||||
Description=Armored Personnel Carrier
|
Description=Armored Personnel Carrier
|
||||||
Traits=Mobile, RenderUnit
|
Traits=Mobile, RenderUnit
|
||||||
|
|||||||
Reference in New Issue
Block a user