diff --git a/OpenRA.Mods.D2k/BuildingCaptureNotification.cs b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs index ceaaf8a240..e23746d7f4 100644 --- a/OpenRA.Mods.D2k/BuildingCaptureNotification.cs +++ b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs @@ -14,8 +14,7 @@ namespace OpenRA.Mods.RA { class CaptureNotificationInfo : ITraitInfo { - public readonly string Race = null; - public readonly string Notification = null; + public readonly string Notification = "BuildingCaptured"; public object Create(ActorInitializer init) { return new CaptureNotification(this); } } @@ -33,10 +32,7 @@ namespace OpenRA.Mods.RA if (captor.World.LocalPlayer != captor.Owner) return; - if (Info.Race != null && Info.Race != newOwner.Country.Race) - return; - - Sound.PlayToPlayer(captor.World.LocalPlayer, Info.Notification); + Sound.PlayNotification(captor.World.LocalPlayer, "Speech", Info.Notification, newOwner.Country.Race); } } } diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 0ba7f6e108..78f471c2ee 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -65,26 +65,41 @@ namespace OpenRA.Mods.D2k.Widgets.Logic { new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToSHPs, "overlay")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3", "3", Path.Combine(PathToSHPs, "repairing")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4", "4", Path.Combine(PathToSHPs, "black")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "5", "8", Path.Combine(PathToSHPs, "selectionedges")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "9", "9", Path.Combine(PathToSHPs, "bar1")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "10", "10", Path.Combine(PathToSHPs, "bar2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "11", "11", Path.Combine(PathToSHPs, "bar3")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "12", "12", Path.Combine(PathToSHPs, "bar4")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "13", "13", Path.Combine(PathToSHPs, "bar5")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "14", "14", Path.Combine(PathToSHPs, "bar6")}, new string[] {"--r8", PathToDataR8, PathToPalette, "15", "16", Path.Combine(PathToSHPs, "dots")}, new string[] {"--r8", PathToDataR8, PathToPalette, "17", "26", Path.Combine(PathToSHPs, "numbers")}, - //new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToSHPs, "shadow")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "27", "37", Path.Combine(PathToSHPs, "credits")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToSHPs, "d2kshadow")}, new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToSHPs, "crates")}, new string[] {"--r8", PathToDataR8, PathToPalette, "107", "109", Path.Combine(PathToSHPs, "spicebloom")}, new string[] {"--r8", PathToDataR8, PathToPalette, "110", "111", Path.Combine(PathToSHPs, "stars")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "112", "112", Path.Combine(PathToSHPs, "greenuparrow")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "112", "113", Path.Combine(PathToSHPs, "greenuparrow")}, new string[] {"--r8", PathToDataR8, PathToPalette, "114", "129", Path.Combine(PathToSHPs, "rockcrater1")}, new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToSHPs, "rockcrater2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "146", "161", Path.Combine(PathToSHPs, "sandcrater1")}, new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToSHPs, "sandcrater2")}, - // ? + new string[] {"--r8", PathToDataR8, PathToPalette, "178", "193", Path.Combine(PathToSHPs, "unknown")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "194", "205", Path.Combine(PathToSHPs, "unknown2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "206", "381", Path.Combine(PathToSHPs, "rifle"), "--infantry"}, new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "458", "693", Path.Combine(PathToSHPs, "bazooka"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "694", "929", Path.Combine(PathToSHPs, "fremen"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "930", "1165", Path.Combine(PathToSHPs, "sardaukar"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1166", "1221", Path.Combine(PathToSHPs, "engineer"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "458", "633", Path.Combine(PathToSHPs, "bazooka"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "634", "693", Path.Combine(PathToSHPs, "bazookadeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "694", "869", Path.Combine(PathToSHPs, "fremen"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "870", "929", Path.Combine(PathToSHPs, "fremendeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "930", "1105", Path.Combine(PathToSHPs, "sardaukar"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1106", "1165", Path.Combine(PathToSHPs, "sardaukardeath"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1166", "1341", Path.Combine(PathToSHPs, "engineer"), "--infantry"}, new string[] {"--r8", PathToDataR8, PathToPalette, "1342", "1401", Path.Combine(PathToSHPs, "engineerdeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1402", "1502", Path.Combine(PathToSHPs, "thumper"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1402", "1457", Path.Combine(PathToSHPs, "thumper"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1458", "1462", Path.Combine(PathToSHPs, "thumping"), "--infantrydeath"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "1463", "1542", Path.Combine(PathToSHPs, "thumper2"), "--infantry"}, new string[] {"--r8", PathToDataR8, PathToPalette, "1543", "1602", Path.Combine(PathToSHPs, "thumperdeath"), "--infantrydeath"}, new string[] {"--r8", PathToDataR8, PathToPalette, "1603", "1634", Path.Combine(PathToSHPs, "missiletank"), "--vehicle"}, new string[] {"--r8", PathToDataR8, PathToPalette, "1635", "1666", Path.Combine(PathToSHPs, "trike"), "--vehicle"}, @@ -102,8 +117,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "2083", "2114", Path.Combine(PathToSHPs, "devast"), "--vehicle"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2115", "2146", Path.Combine(PathToSHPs, "combathturret"), "--vehicle"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2147", "2148", Path.Combine(PathToSHPs, "deathhandmissile")}, - - new string[] {"--r8", PathToDataR8, PathToPalette, "2245", "2284", Path.Combine(PathToSHPs, "saboteur"), "--infantry"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "2149", "2324", Path.Combine(PathToSHPs, "saboteur"), "--infantry"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2325", "2388", Path.Combine(PathToSHPs, "saboteurdeath"), "--infantrydeath"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2389", "2420", Path.Combine(PathToSHPs, "deviatortank"), "--vehicle"}, new string[] {"--r8", PathToDataR8, PathToPalette, "2421", "2452", Path.Combine(PathToSHPs, "raider"), "--vehicle"}, @@ -168,19 +182,69 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "2999", "3000", Path.Combine(PathToSHPs, "starportc"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3001", "3003", Path.Combine(PathToSHPs, "heavyc"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3004", "3005", Path.Combine(PathToSHPs, "palacec"), "--building"}, - //conyardc repetition + new string[] {"--r8", PathToDataR8, PathToPalette, "3006", "3007", Path.Combine(PathToSHPs, "conyardh2"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3008", "3013", Path.Combine(PathToSHPs, "plates")}, - //projectiles + new string[] {"--r8", PathToDataR8, PathToPalette, "3014", "3014", Path.Combine(PathToSHPs, "unknown3"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3015", "3078", Path.Combine(PathToSHPs, "rpg"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3079", "3087", Path.Combine(PathToSHPs, "unknown4"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3088", "3247", Path.Combine(PathToSHPs, "missile"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3248", "3279", Path.Combine(PathToSHPs, "doubleblast"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3280", "3283", Path.Combine(PathToSHPs, "bombs"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3284", "3287", Path.Combine(PathToSHPs, "unknown6"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3288", "3289", Path.Combine(PathToSHPs, "unknown7"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3290", "3303", Path.Combine(PathToSHPs, "unknown8"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3304", "3305", Path.Combine(PathToSHPs, "unknown9"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3306", "3369", Path.Combine(PathToSHPs, "missile2"), "--projectile"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--projectile"}, - //explosions - new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "wormjaw")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "wormdust")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3381", "3385", Path.Combine(PathToSHPs, "harvest"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3386", "3389", Path.Combine(PathToSHPs, "miniboom"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3390", "3402", Path.Combine(PathToSHPs, "mediboom"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3403", "3417", Path.Combine(PathToSHPs, "mediboom2"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3418", "3420", Path.Combine(PathToSHPs, "minifire"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3421", "3428", Path.Combine(PathToSHPs, "miniboom2"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3429", "3432", Path.Combine(PathToSHPs, "minibooms"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3433", "3447", Path.Combine(PathToSHPs, "bigboom"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3448", "3470", Path.Combine(PathToSHPs, "bigboom2"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3471", "3493", Path.Combine(PathToSHPs, "bigboom3"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3494", "3501", Path.Combine(PathToSHPs, "unknown10"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3502", "3509", Path.Combine(PathToSHPs, "unknown11"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3510", "3511", Path.Combine(PathToSHPs, "unknown12"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3512", "3530", Path.Combine(PathToSHPs, "movingsand"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3531", "3534", Path.Combine(PathToSHPs, "unknown13"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3535", "3539", Path.Combine(PathToSHPs, "unknown14"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3540", "3543", Path.Combine(PathToSHPs, "unknown15"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3544", "3548", Path.Combine(PathToSHPs, "unknown16"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "wormjaw"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "wormdust"), "--projectile"}, new string[] {"--r8", PathToDataR8, PathToPalette, "3586", "3600", Path.Combine(PathToSHPs, "wormsigns1")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToSHPs, "wormsigns3")}, new string[] {"--r8", PathToDataR8, PathToPalette, "3616", "3620", Path.Combine(PathToSHPs, "wormsigns4")}, - //new string[] {"--r8", PathToDataR8, PathToPalette, "3679", "3686", "sell"}, - //explosions and muzzle flash + new string[] {"--r8", PathToDataR8, PathToPalette, "3621", "3625", Path.Combine(PathToSHPs, "rings"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3626", "3630", Path.Combine(PathToSHPs, "minipiff"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3631", "3678", Path.Combine(PathToSHPs, "movingsand2"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3679", "3686", Path.Combine(PathToSHPs, "selling"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3687", "3693", Path.Combine(PathToSHPs, "shockwave"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3694", "3711", Path.Combine(PathToSHPs, "electroplosion"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3712", "3722", Path.Combine(PathToSHPs, "fire"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3723", "3734", Path.Combine(PathToSHPs, "fire2"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3735", "3738", Path.Combine(PathToSHPs, "unknown21"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3739", "3742", Path.Combine(PathToSHPs, "unknown22"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3743", "3774", Path.Combine(PathToSHPs, "doublemuzzle"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3775", "3806", Path.Combine(PathToSHPs, "muzzle"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3807", "3838", Path.Combine(PathToSHPs, "doubleblastmuzzle"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3839", "3870", Path.Combine(PathToSHPs, "minimuzzle"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3871", "3872", Path.Combine(PathToSHPs, "unknown17"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3873", "3875", Path.Combine(PathToSHPs, "unknown18"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3876", "3876", Path.Combine(PathToSHPs, "unknown19"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3877", "3884", Path.Combine(PathToSHPs, "burst"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3885", "3898", Path.Combine(PathToSHPs, "fire3"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3899", "3910", Path.Combine(PathToSHPs, "energy"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3911", "3946", Path.Combine(PathToSHPs, "reveal"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3947", "3964", Path.Combine(PathToSHPs, "orbit"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3965", "3979", Path.Combine(PathToSHPs, "mushroomcloud"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3980", "3987", Path.Combine(PathToSHPs, "mediboom3"), "--projectile"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "3988", "4010", Path.Combine(PathToSHPs, "largeboom"), "--projectile"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4011", "4011", Path.Combine(PathToSHPs, "rifleicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4012", "4012", Path.Combine(PathToSHPs, "bazookaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4013", "4013", Path.Combine(PathToSHPs, "engineericon")}, @@ -189,7 +253,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "4016", "4016", Path.Combine(PathToSHPs, "trikeicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4017", "4017", Path.Combine(PathToSHPs, "raidericon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4018", "4018", Path.Combine(PathToSHPs, "quadicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4019", "4019", Path.Combine(PathToSHPs, "harvestericon")}, // == 4044 + new string[] {"--r8", PathToDataR8, PathToPalette, "4019", "4019", Path.Combine(PathToSHPs, "harvestericon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4020", "4020", Path.Combine(PathToSHPs, "combataicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4021", "4021", Path.Combine(PathToSHPs, "combathicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4022", "4022", Path.Combine(PathToSHPs, "combatoicon")}, @@ -199,33 +263,55 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "4026", "4026", Path.Combine(PathToSHPs, "siegetankicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4027", "4027", Path.Combine(PathToSHPs, "sonictankicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4028", "4028", Path.Combine(PathToSHPs, "devasticon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4029", "4029", Path.Combine(PathToSHPs, "carryallicon")}, // == 4030 - new string[] {"--r8", PathToDataR8, PathToPalette, "4031", "4031", Path.Combine(PathToSHPs, "orniicon")}, // == 4062 - new string[] {"--r8", PathToDataR8, PathToPalette, "4032", "4032", Path.Combine(PathToSHPs, "fremenicon")}, // == 4033 + new string[] {"--r8", PathToDataR8, PathToPalette, "4029", "4029", Path.Combine(PathToSHPs, "carryallicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4030", "4030", Path.Combine(PathToSHPs, "carryallicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4031", "4031", Path.Combine(PathToSHPs, "orniicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4032", "4032", Path.Combine(PathToSHPs, "fremenicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4033", "4033", Path.Combine(PathToSHPs, "fremenicon2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4034", "4034", Path.Combine(PathToSHPs, "saboteuricon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4035", "4035", Path.Combine(PathToSHPs, "deathhandicon")}, - // "4036..4045 = repetitions - new string[] {"--r8", PathToDataR8, PathToPalette, "4046", "4046", Path.Combine(PathToSHPs, "conyardaicon")}, // == 4049 + new string[] {"--r8", PathToDataR8, PathToPalette, "4036", "4036", Path.Combine(PathToSHPs, "rifleicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4037", "4037", Path.Combine(PathToSHPs, "bazookaicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4038", "4038", Path.Combine(PathToSHPs, "engineericon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4039", "4039", Path.Combine(PathToSHPs, "thumpericon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4040", "4040", Path.Combine(PathToSHPs, "sardaukaricon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4041", "4041", Path.Combine(PathToSHPs, "trikeicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4042", "4042", Path.Combine(PathToSHPs, "raidericon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4043", "4043", Path.Combine(PathToSHPs, "quadicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4044", "4044", Path.Combine(PathToSHPs, "harvestericon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4045", "4045", Path.Combine(PathToSHPs, "combataicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4046", "4046", Path.Combine(PathToSHPs, "conyardaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4047", "4047", Path.Combine(PathToSHPs, "conyardhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4048", "4048", Path.Combine(PathToSHPs, "conyardoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4050", "4050", Path.Combine(PathToSHPs, "4plateicon")}, // == 4051..4052 - new string[] {"--r8", PathToDataR8, PathToPalette, "4053", "4053", Path.Combine(PathToSHPs, "6plateicon")}, // == 4054..4055 + new string[] {"--r8", PathToDataR8, PathToPalette, "4049", "4049", Path.Combine(PathToSHPs, "conyardaicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4050", "4050", Path.Combine(PathToSHPs, "4plateaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4051", "4051", Path.Combine(PathToSHPs, "4platehicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4052", "4052", Path.Combine(PathToSHPs, "4plateoicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4053", "4053", Path.Combine(PathToSHPs, "6plateaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4054", "4054", Path.Combine(PathToSHPs, "6platehicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4055", "4055", Path.Combine(PathToSHPs, "6plateoicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4056", "4056", Path.Combine(PathToSHPs, "pwraicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4057", "4057", Path.Combine(PathToSHPs, "pwrhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4058", "4058", Path.Combine(PathToSHPs, "pwroicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4059", "4059", Path.Combine(PathToSHPs, "barraicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4060", "4060", Path.Combine(PathToSHPs, "barrhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4061", "4061", Path.Combine(PathToSHPs, "barroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4063", "4063", Path.Combine(PathToSHPs, "wallicon")}, // == 4061..4062 + new string[] {"--r8", PathToDataR8, PathToPalette, "4062", "4062", Path.Combine(PathToSHPs, "orniicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4063", "4063", Path.Combine(PathToSHPs, "wallaicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4064", "4064", Path.Combine(PathToSHPs, "wallhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4065", "4065", Path.Combine(PathToSHPs, "walloicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4066", "4066", Path.Combine(PathToSHPs, "refaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4067", "4067", Path.Combine(PathToSHPs, "refhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4068", "4068", Path.Combine(PathToSHPs, "refoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4069", "4069", Path.Combine(PathToSHPs, "turreticon")}, // == 4070..4071 - new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToSHPs, "radaraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4069", "4069", Path.Combine(PathToSHPs, "guntoweraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4070", "4070", Path.Combine(PathToSHPs, "guntowerhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4071", "4071", Path.Combine(PathToSHPs, "guntoweroicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToSHPs, "radaraicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4073", "4073", Path.Combine(PathToSHPs, "radarhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4074", "4074", Path.Combine(PathToSHPs, "radaroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4075", "4075", Path.Combine(PathToSHPs, "rturreticon")}, // == 4076..4077 + new string[] {"--r8", PathToDataR8, PathToPalette, "4075", "4075", Path.Combine(PathToSHPs, "rockettoweraicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4076", "4076", Path.Combine(PathToSHPs, "rockettowerhicon")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4077", "4077", Path.Combine(PathToSHPs, "rockettoweroicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4078", "4078", Path.Combine(PathToSHPs, "hightechaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4079", "4079", Path.Combine(PathToSHPs, "hightechhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4080", "4080", Path.Combine(PathToSHPs, "hightechoicon")}, @@ -238,12 +324,12 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "4087", "4087", Path.Combine(PathToSHPs, "heavyaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4088", "4088", Path.Combine(PathToSHPs, "heavyhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4089", "4089", Path.Combine(PathToSHPs, "heavyoicon")}, - // 4090 == orniicon - // 4091 == heavyhicon + new string[] {"--r8", PathToDataR8, PathToPalette, "4090", "4090", Path.Combine(PathToSHPs, "orniicon3")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4091", "4091", Path.Combine(PathToSHPs, "heavyhicon2")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4092", "4092", Path.Combine(PathToSHPs, "starportaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4093", "4093", Path.Combine(PathToSHPs, "starporthicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4094", "4094", Path.Combine(PathToSHPs, "starportoicon")}, - // 4095 = orniicon + new string[] {"--r8", PathToDataR8, PathToPalette, "4095", "4095", Path.Combine(PathToSHPs, "orniicon4")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4096", "4096", Path.Combine(PathToSHPs, "repairaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4097", "4097", Path.Combine(PathToSHPs, "repairhicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4098", "4098", Path.Combine(PathToSHPs, "repairoicon")}, @@ -253,12 +339,15 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "4102", "4102", Path.Combine(PathToSHPs, "palaceaicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4103", "4103", Path.Combine(PathToSHPs, "palacehicon")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4104", "4104", Path.Combine(PathToSHPs, "palaceoicon")}, - // 4105 = orniicon - // 4106..4107 = radaraicon - // 4108 = conyardaicon + new string[] {"--r8", PathToDataR8, PathToPalette, "4105", "4105", Path.Combine(PathToSHPs, "orniicon5")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4106", "4106", Path.Combine(PathToSHPs, "radaraicon2")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4107", "4107", Path.Combine(PathToSHPs, "radaraicon3")}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4108", "4108", Path.Combine(PathToSHPs, "conyardaicon3")}, new string[] {"--r8", PathToDataR8, PathToPalette, "4109", "4150", Path.Combine(PathToSHPs, "conmake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4151", "4174", Path.Combine(PathToSHPs, "wtrpmake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4175", "4194", Path.Combine(PathToSHPs, "barramake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4195", "4212", Path.Combine(PathToSHPs, "barrhmake"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4213", "4230", Path.Combine(PathToSHPs, "barromake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4231", "4253", Path.Combine(PathToSHPs, "refmake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4254", "4273", Path.Combine(PathToSHPs, "radarmake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4274", "4294", Path.Combine(PathToSHPs, "highmake"), "--building"}, @@ -271,9 +360,21 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--r8", PathToDataR8, PathToPalette, "4413", "4435", Path.Combine(PathToSHPs, "palacemake"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4436", "4449", Path.Combine(PathToSHPs, "cranea"), "--building"}, new string[] {"--r8", PathToDataR8, PathToPalette, "4450", "4463", Path.Combine(PathToSHPs, "craneh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4463", "4477", Path.Combine(PathToSHPs, "craneo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4760", "4819", Path.Combine(PathToSHPs, "windtrap_anim"), "--building"}, //? - new string[] {"--r8", PathToDataR8, PathToPalette, "4820", "4840", Path.Combine(PathToSHPs, "missile_launch"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4464", "4477", Path.Combine(PathToSHPs, "craneo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4478", "4491", Path.Combine(PathToSHPs, "cranea2"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4492", "4501", Path.Combine(PathToSHPs, "windtrapa"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4502", "4511", Path.Combine(PathToSHPs, "windtraph"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4512", "4521", Path.Combine(PathToSHPs, "windtrapo"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4522", "4552", Path.Combine(PathToSHPs, "disha"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4553", "4582", Path.Combine(PathToSHPs, "dishh"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4583", "4613", Path.Combine(PathToSHPs, "disho"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4614", "4643", Path.Combine(PathToSHPs, "highweld"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4644", "4673", Path.Combine(PathToSHPs, "lightweld"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4674", "4721", Path.Combine(PathToSHPs, "heavyweld"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4722", "4744", Path.Combine(PathToSHPs, "unknown20"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4745", "4759", Path.Combine(PathToSHPs, "marker"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4760", "4819", Path.Combine(PathToSHPs, "researchzaps"), "--building"}, + new string[] {"--r8", PathToDataR8, PathToPalette, "4820", "4840", Path.Combine(PathToSHPs, "deathhandlaunch"), "--building"}, new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), PathToPalette, "0", "264", Path.Combine(PathToSHPs, "mouse")}, new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BASE"), "--tileset"}, new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "748", "749", Path.Combine(PathToSHPs, "spice0")}, @@ -289,10 +390,19 @@ namespace OpenRA.Mods.D2k.Widgets.Logic { new string[] {"--shp", Path.Combine(PathToSHPs, "overlay.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "repairing.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "numbers.png"), "8"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "black.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "selectionedges.png"), "8"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar1.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar2.png"), "24"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar3.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar4.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar5.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bar6.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "dots.png"), "4"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "numbers.png"), "8"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "credits.png"), "10"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "d2kshadow.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "crates.png"), "32"}, - //new string[] {"--shp", Path.Combine(PathToSHPs, "shadow.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "spicebloom.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "stars.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "greenuparrow.png"), "16"}, @@ -300,14 +410,21 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater1.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater2.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown2.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rifle.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rifledeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "bazooka.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bazookadeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "fremen.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fremendeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukar.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukardeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "engineer.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "engineerdeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "thumper.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "thumping.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "thumper2.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "thumperdeath.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "missiletank.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "trike.png"), "32"}, @@ -386,14 +503,73 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "starporto.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "lighto.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "palaceo.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "sietch.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "starportc.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyc.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "palacec.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "conyardh2.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "plates.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown3.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rpg.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown4.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "missile.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "doubleblast.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bombs.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown6.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown7.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown8.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown9.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "missile2.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "unload.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "harvest.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "miniboom.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom2.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "minifire.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "miniboom2.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "minibooms.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom2.png"), "72"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom3.png"), "72"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown10.png"), "24"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown11.png"), "84"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown12.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "movingsand.png"), "72"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown13.png"), "72"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown14.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown15.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown16.png"), "32"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormjaw.png"), "68"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormdust.png"), "68"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns1.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns4.png"), "16"}, - //new string[] {"--shp", Path.Combine(PathToSHPs, "sell.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rings.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "minipiff.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "movingsand2.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "selling.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "shockwave.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "electroplosion.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fire.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fire2.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown21.png"), "12"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown22.png"), "24"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "doublemuzzle.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "muzzle.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "doubleblastmuzzle.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "minimuzzle.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown17.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown18.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown19.png"), "16"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "burst.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "fire3.png"), "120"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "energy.png"), "48"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "reveal.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "orbit.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mushroomcloud.png"), "72"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom3.png"), "32"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "largeboom.png"), "72"}, new string[] {"--shp", Path.Combine(PathToSHPs, "rifleicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "bazookaicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "engineericon.png"), "60"}, @@ -420,23 +596,33 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "conyardaicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "conyardhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "conyardoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "4plateicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "6plateicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "4plateaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "4platehicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "4plateoicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "6plateaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "6platehicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "6plateoicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwraicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwrhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "pwroicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barraicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barrhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wallicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wallaicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "wallhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "walloicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refaicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "turreticon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntoweraicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntowerhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "guntoweroicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "radaraicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "radarhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "radaroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rturreticon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettoweraicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowerhicon.png"), "60"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "rockettoweroicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightechaicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightechhicon.png"), "60"}, new string[] {"--shp", Path.Combine(PathToSHPs, "hightechoicon.png"), "60"}, @@ -464,6 +650,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "conmake.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "wtrpmake.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "barramake.png"), "80"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barrhmake.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "barromake.png"), "64"}, new string[] {"--shp", Path.Combine(PathToSHPs, "refmake.png"), "120"}, new string[] {"--shp", Path.Combine(PathToSHPs, "radarmake.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "highmake.png"), "96"}, @@ -477,15 +665,21 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--shp", Path.Combine(PathToSHPs, "cranea.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "craneh.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "craneo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "windtrap_anim.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "missile_launch.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "windtrapa.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "windtraph.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "windtrapo.png"), "64"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "disha.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "dishh.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "disho.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "highweld.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "lightweld.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "heavyweld.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "unknown20.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "marker.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "researchzaps.png"), "96"}, + new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandlaunch.png"), "96"}, new string[] {"--shp", Path.Combine(PathToSHPs, "mouse.png"), "48"}, new string[] {"--shp", Path.Combine(PathToSHPs, "spice0.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sietch.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starportc.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyc.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palacec.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "plates.png"), "32"}, }; var SHPsToTranspose = new string[][] @@ -496,8 +690,9 @@ namespace OpenRA.Mods.D2k.Widgets.Logic new string[] {"--transpose", Path.Combine(PathToSHPs, "fremen.shp"), Path.Combine(PathToSHPs, "fremen.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, new string[] {"--transpose", Path.Combine(PathToSHPs, "sardaukar.shp"), Path.Combine(PathToSHPs, "sardaukar.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, new string[] {"--transpose", Path.Combine(PathToSHPs, "thumper.shp"), Path.Combine(PathToSHPs, "thumper.shp"), "8", "8", "6"}, + new string[] {"--transpose", Path.Combine(PathToSHPs, "thumper2.shp"), Path.Combine(PathToSHPs, "thumper2.shp"), "8", "8", "5"}, new string[] {"--transpose", Path.Combine(PathToSHPs, "engineer.shp"), Path.Combine(PathToSHPs, "engineer.shp"), "8", "8", "6"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "saboteur.shp"), Path.Combine(PathToSHPs, "saboteur.shp"), "8", "8", "4"}, + new string[] {"--transpose", Path.Combine(PathToSHPs, "saboteur.shp"), Path.Combine(PathToSHPs, "saboteur.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, }; var onError = (Action)(s => Game.RunAfterTick(() => diff --git a/OpenRA.Mods.RA/ActorLostNotification.cs b/OpenRA.Mods.RA/ActorLostNotification.cs index 827c8afe30..d053e79288 100644 --- a/OpenRA.Mods.RA/ActorLostNotification.cs +++ b/OpenRA.Mods.RA/ActorLostNotification.cs @@ -14,8 +14,7 @@ namespace OpenRA.Mods.RA { class ActorLostNotificationInfo : ITraitInfo { - public readonly string Race = null; - public readonly string Notification = null; + public readonly string Notification = "UnitLost"; public readonly bool NotifyAll = false; public object Create(ActorInitializer init) { return new ActorLostNotification(this); } @@ -32,9 +31,7 @@ namespace OpenRA.Mods.RA public void Killed(Actor self, AttackInfo e) { var player = (Info.NotifyAll) ? self.World.LocalPlayer : self.Owner; - if (Info.Race != null && Info.Race != self.Owner.Country.Race) - return; - Sound.PlayToPlayer(player, Info.Notification); + Sound.PlayNotification(player, "Speech", Info.Notification, self.Owner.Country.Race); } } } diff --git a/OpenRA.Mods.RA/BuildingCaptureNotification.cs b/OpenRA.Mods.RA/BuildingCaptureNotification.cs index 67b23c3ab5..441bc69b0c 100644 --- a/OpenRA.Mods.RA/BuildingCaptureNotification.cs +++ b/OpenRA.Mods.RA/BuildingCaptureNotification.cs @@ -14,8 +14,7 @@ namespace OpenRA.Mods.RA { class CaptureNotificationInfo : ITraitInfo { - public readonly string Race = null; - public readonly string Notification = null; + public readonly string Notification = "BuildingCaptured"; public object Create(ActorInitializer init) { return new CaptureNotification(this); } } @@ -33,10 +32,7 @@ namespace OpenRA.Mods.RA if (captor.World.LocalPlayer != captor.Owner) return; - if (Info.Race != null && Info.Race != oldOwner.Country.Race) - return; - - Sound.PlayToPlayer(captor.World.LocalPlayer, Info.Notification); + Sound.PlayNotification(captor.World.LocalPlayer, "Speech", Info.Notification, oldOwner.Country.Race); } } } diff --git a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs index ead5721ed8..e767606a6f 100755 --- a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs +++ b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs @@ -30,6 +30,9 @@ namespace OpenRA.Mods.RA.Widgets public string HoldText = ""; public string RequiresText = ""; + public int IconWidth = 64; + public int IconHeight = 48; + ProductionQueue CurrentQueue; List VisibleQueues; @@ -75,7 +78,7 @@ namespace OpenRA.Mods.RA.Widgets public override Rectangle EventBounds { - get { return new Rectangle((int)(paletteOrigin.X) - 24, (int)(paletteOrigin.Y), 215, Math.Max(48 * numActualRows, 40 * tabs.Count + 9)); } + get { return new Rectangle((int)(paletteOrigin.X) - 24, (int)(paletteOrigin.Y), 215, Math.Max(IconHeight * numActualRows, 40 * tabs.Count + 9)); } } public override void Tick() @@ -217,16 +220,16 @@ namespace OpenRA.Mods.RA.Widgets for (var w = 0; w < numActualRows; w++) WidgetUtils.DrawRGBA( ChromeProvider.GetImage(paletteCollection, "bg-" + (w % 4)), - new float2(origin.X - 9, origin.Y + 48 * w)); + new float2(origin.X - 9, origin.Y + IconHeight * w)); WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "bottom"), - new float2(origin.X - 9, origin.Y - 1 + 48 * numActualRows)); + new float2(origin.X - 9, origin.Y - 1 + IconHeight * numActualRows)); // Icons string tooltipItem = null; foreach (var item in allBuildables) { - var rect = new RectangleF(origin.X + x * 64, origin.Y + 48 * y, 64, 48); + var rect = new RectangleF(origin.X + x * IconWidth, origin.Y + IconHeight * y, IconWidth, IconHeight); var drawPos = new float2(rect.Location); WidgetUtils.DrawSHP(iconSprites[item.Name], drawPos, worldRenderer); @@ -277,7 +280,7 @@ namespace OpenRA.Mods.RA.Widgets // Tooltip if (tooltipItem != null && !paletteAnimating && paletteOpen) DrawProductionTooltip(world, tooltipItem, - new float2(Game.viewport.Width, origin.Y + numActualRows * 48 + 9).ToInt2()); + new float2(Game.viewport.Width, origin.Y + numActualRows * IconHeight + 9).ToInt2()); } // Palette Dock @@ -286,12 +289,12 @@ namespace OpenRA.Mods.RA.Widgets for (int i = 0; i < numActualRows; i++) WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-" + (i % 4).ToString()), - new float2(Game.viewport.Width - 14, origin.Y + 48 * i)); + new float2(Game.viewport.Width - 14, origin.Y + IconHeight * i)); WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-bottom"), - new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * numActualRows)); + new float2(Game.viewport.Width - 14, origin.Y - 1 + IconHeight * numActualRows)); - return 48 * y + 9; + return IconHeight * y + 9; } string GetOverlayForItem(ProductionItem item) diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index 96097dfb75..df4b8eb25b 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -175,7 +175,8 @@ namespace OpenRA.Utility Console.WriteLine("FrameCount: {0}", FrameCount); } } - else if (args.Contains("--vehicle")) //resorting to RA/CnC compatible counter-clockwise frame order + //resorting to RA/CnC compatible counter-clockwise frame order + else if (args.Contains("--vehicle") || args.Contains("--projectile")) { frame = srcImage[startFrame]; @@ -296,11 +297,6 @@ namespace OpenRA.Utility OffsetX = frame.FrameWidth/2 - frame.Width/2; OffsetY = frame.FrameHeight/2 - frame.Height/2; } - else if (args.Contains("--projectile")) - { - OffsetX = frame.FrameWidth/2 - frame.OffsetX; - OffsetY = frame.FrameHeight/2 - frame.OffsetY; - } else if (args.Contains("--building")) { if (frame.OffsetX < 0) { frame.OffsetX = 0 - frame.OffsetX; } diff --git a/mods/d2k/uibits/tabs.psd b/artsrc/d2k/tabs.psd similarity index 100% rename from mods/d2k/uibits/tabs.psd rename to artsrc/d2k/tabs.psd diff --git a/mods/cnc-classic/mod.yaml b/mods/cnc-classic/mod.yaml index 4bc2c14963..68baf6b44a 100644 --- a/mods/cnc-classic/mod.yaml +++ b/mods/cnc-classic/mod.yaml @@ -66,9 +66,12 @@ ChromeLayout: mods/ra/chrome/gameinit.yaml mods/ra/chrome/ingame.yaml mods/ra/chrome/ingame-chat.yaml + mods/ra/chrome/ingame-observer.yaml + mods/ra/chrome/ingame-fmvplayer.yaml mods/ra/chrome/mainmenu.yaml mods/ra/chrome/settings.yaml mods/ra/chrome/lobby.yaml + mods/ra/chrome/color-picker.yaml mods/ra/chrome/map-chooser.yaml mods/ra/chrome/create-server.yaml mods/ra/chrome/serverbrowser.yaml diff --git a/mods/cnc/notifications.yaml b/mods/cnc/notifications.yaml index fe9699c073..20a27318ee 100644 --- a/mods/cnc/notifications.yaml +++ b/mods/cnc/notifications.yaml @@ -1,4 +1,7 @@ Speech: + Prefixes: + gdi: gdi + nod: nod Notifications: Repairing: repair1 LowPower: lopower1 @@ -21,6 +24,11 @@ Speech: Building: bldging1 ConstructionComplete: constru1 Reinforce: reinfor1 + UnitLost: unitlost + BuildingLost: strclost + CivilianKilled: civdead1 + BuildingCaptured: capt1 + DisablePrefixes: Repairing, LowPower, SilosNeeded, PrimaryBuildingSelected, BuildingCannotPlaceAudio, NewOptions, AbilityInsufficientPower, Win, Lose, BaseAttack, HarvesterAttack, Leave, UnitReady, NoBuild, Training, OnHold, Cancelled, Building, ConstructionComplete, Reinforce, UnitLost, BuildingLost, CivilianKilled Sounds: Notifications: diff --git a/mods/cnc/rules/defaults.yaml b/mods/cnc/rules/defaults.yaml index 0e4b262346..674f233d41 100644 --- a/mods/cnc/rules/defaults.yaml +++ b/mods/cnc/rules/defaults.yaml @@ -27,7 +27,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud AttackMove: AcceptsCloakCrate: WithSmoke: @@ -62,7 +61,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud AttackMove: AcceptsCloakCrate: WithSmoke: @@ -91,7 +89,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud Explodes: Weapon: HeliExplode EmptyWeapon: HeliExplode @@ -139,7 +136,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud SpawnViceroid: Probability: 2 CrushableInfantry: @@ -175,7 +171,7 @@ Weapon: Pistol AttackFrontal: ActorLostNotification: - Notification: civdead1.aud + Notification: CivilianKilled NotifyAll: true ScaredyCat: RenderInfantryPanic: @@ -196,7 +192,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud DebugMuzzlePositions: ^Ship: @@ -215,7 +210,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlost.aud AttackMove: DebugMuzzlePositions: @@ -252,14 +246,10 @@ ActorTypes: e6,e1 MustBeDestroyed: GivesExperience: - CaptureNotification@GDI: - Race: gdi - Notification: gdicapt1.aud - CaptureNotification@NOD: - Race: nod - Notification: nodcapt1.aud + CaptureNotification: + Notification: BuildingCaptured ActorLostNotification: - Notification: strclost.aud + Notification: BuildingLost EditorAppearance: RelativeToTopLeft: yes AutoTargetIgnore: diff --git a/mods/cnc/rules/infantry.yaml b/mods/cnc/rules/infantry.yaml index d25fb54bd9..cf1e92a0f6 100644 --- a/mods/cnc/rules/infantry.yaml +++ b/mods/cnc/rules/infantry.yaml @@ -224,7 +224,6 @@ PVICE: Queue: Biolab BuildPaletteOrder: 40 Owner: gdi, nod -# Prerequisites: bio Tooltip: Description: Mutated abomination that spits liquid tiberium.\n Strong vs Infantry, Buildings\n Weak vs Aircraft Icon: viceicnh @@ -233,4 +232,3 @@ PVICE: Voice: DinoVoice SelectionDecorations: ActorLostNotification: - Notification: unitlost.aud diff --git a/mods/d2k/bits/clock.shp b/mods/d2k/bits/clock.shp new file mode 100644 index 0000000000..d55ae3cf3c Binary files /dev/null and b/mods/d2k/bits/clock.shp differ diff --git a/mods/d2k/bits/levelup.shp b/mods/d2k/bits/levelup.shp new file mode 100644 index 0000000000..10fce43ef2 Binary files /dev/null and b/mods/d2k/bits/levelup.shp differ diff --git a/mods/d2k/bits/nopower.shp b/mods/d2k/bits/nopower.shp new file mode 100644 index 0000000000..3bb46e04a0 Binary files /dev/null and b/mods/d2k/bits/nopower.shp differ diff --git a/mods/d2k/bits/rank.shp b/mods/d2k/bits/rank.shp new file mode 100644 index 0000000000..c533391ca4 Binary files /dev/null and b/mods/d2k/bits/rank.shp differ diff --git a/mods/d2k/bits/speed.shp b/mods/d2k/bits/speed.shp new file mode 100644 index 0000000000..9b99c1b846 Binary files /dev/null and b/mods/d2k/bits/speed.shp differ diff --git a/mods/d2k/chrome/color-picker.yaml b/mods/d2k/chrome/color-picker.yaml new file mode 100644 index 0000000000..a51f95e9b9 --- /dev/null +++ b/mods/d2k/chrome/color-picker.yaml @@ -0,0 +1,66 @@ +Background@COLOR_CHOOSER: + Logic:ColorPickerLogic + Background:dialog2 + Width:310 + Height:120 + Children: + Button@SAVE_BUTTON: + X:210 + Y:85 + Width:90 + Height:25 + Text:Save + Font:Bold + Button@RANDOM_BUTTON: + X:115 + Y:85 + Width:90 + Height:25 + Text:Random + Font:Bold + ShpImage@CARRYALL: + X:220 + Y:10 + Image:carryall + Palette:colorpicker + Label@HUE_LABEL: + X:0 + Y:5 + Width:40 + Height:20 + Align: Right + Text: Hue: + Slider@HUE: + X:43 + Y:10 + Width:160 + Height:20 + Ticks:5 + Label@SAT_LABEL: + X:0 + Y:30 + Width:40 + Height:20 + Align: Right + Text: Sat: + Slider@SAT: + X:43 + Y:35 + Width:160 + Height:20 + Ticks:5 + Label@LUM_LABEL: + X:0 + Y:55 + Width:40 + Height:20 + Align: Right + Text: Lum: + Slider@LUM: + X:43 + Y:60 + Width:160 + Height:20 + Ticks:5 + MinimumValue: 0.2 + MaximumValue: 1 diff --git a/mods/d2k/chrome/ingame.yaml b/mods/d2k/chrome/ingame.yaml new file mode 100644 index 0000000000..00f3ca76f1 --- /dev/null +++ b/mods/d2k/chrome/ingame.yaml @@ -0,0 +1,232 @@ +Container@INGAME_ROOT: + Logic:IngameChromeLogic + Children: + WorldInteractionController@INTERACTION_CONTROLLER: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + ViewportScrollController: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + WorldCommand: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + Timer@GAME_TIMER: + X: WINDOW_RIGHT/2 + Y: 0-10 + StrategicProgress@STRATEGIC_PROGRESS: + X: WINDOW_RIGHT/2 + Y: 40 + Background@POSTGAME_BG: + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:400 + Height:100 + Background:dialog4 + Visible:false + Children: + Label@TEXT: + X:(PARENT_RIGHT - WIDTH)/2 + Y:0 + Width:200 + Height:80 + Align:Center + Button@POSTGAME_OBSERVE: + X:10 + Y:(PARENT_BOTTOM - HEIGHT - 10) + Width:150 + Height:25 + Font:Bold + Text:Observe + Button@POSTGAME_QUIT: + X:(PARENT_RIGHT - WIDTH - 10) + Y:(PARENT_BOTTOM - HEIGHT - 10) + Width:150 + Height:25 + Font:Bold + Text:Leave + SupportPowerBin@INGAME_POWERS_BIN: + X:0 + Y:25 + ReadyText: READY + HoldText: ON HOLD + BuildPalette@INGAME_BUILD_PALETTE: + X:WINDOW_RIGHT - 250 + Y:280 + Width:250 + Height:500 + ReadyText: READY + HoldText: ON HOLD + RequiresText: Requires + IconWidth: 60 + IconHeight: 47 + Button@INGAME_OPTIONS_BUTTON: + X:0 + Y:0 + Width:160 + Height:25 + Text:Options (ESC) + Font:Bold + Key: escape + Button@INGAME_DIPLOMACY_BUTTON: + X:162 + Y:0 + Width:160 + Height:25 + Text:Diplomacy (F1) + Font:Bold + Key: f1 + Button@CHEATS_BUTTON: + X:324 + Y:0 + Width:160 + Height:25 + Text:Cheats (F2) + Visible:false + Font:Bold + Key: f2 + Button@OBJECTIVES_BUTTON: + X:486 + Y:0 + Width:160 + Height:25 + Text:Objectives (F3) + Visible:false + Font:Bold + Key: f3 + RadarBin@INGAME_RADAR_BIN: + WorldInteractionController:INTERACTION_CONTROLLER + PowerBin@INGAME_POWER_BIN: + MoneyBin@INGAME_MONEY_BIN: + X:WINDOW_RIGHT - WIDTH + Y:0 + Width:320 + Height: 32 + Children: + OrderButton@SELL: + Logic:OrderButtonsChromeLogic + X:3 + Y:0 + Width:30 + Height:30 + Image:sell + Description:Sell + LongDesc:Sell buildings, reclaiming a \nproportion of their build cost + OrderButton@POWER_DOWN: + Logic:OrderButtonsChromeLogic + X:39 + Y:0 + Width:30 + Height:30 + Image:power + Description:Powerdown + LongDesc:Disable unneeded structures so their \npower can be used elsewhere + OrderButton@REPAIR: + Logic:OrderButtonsChromeLogic + X:75 + Y:0 + Width:30 + Height:30 + Image:repair + Description:Repair + LongDesc:Repair damaged buildings + WorldTooltip: + Background@INGAME_OPTIONS_BG: + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:300 + Height:295 + Visible:false + Children: + Label@LABEL_TITLE: + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Options + Align:Center + Font:Bold + Button@RESUME: + X:(PARENT_RIGHT - WIDTH)/2 + Y:60 + Width:160 + Height:25 + Text:Resume + Font:Bold + Key:escape + Button@SETTINGS: + X:(PARENT_RIGHT - WIDTH)/2 + Y:100 + Width:160 + Height:25 + Text:Settings + Font:Bold + Button@MUSIC: + X:(PARENT_RIGHT - WIDTH)/2 + Y:140 + Width:160 + Height:25 + Text:Music + Font:Bold + Button@SURRENDER: + X:(PARENT_RIGHT - WIDTH)/2 + Y:180 + Width:160 + Height:25 + Text:Surrender + Font:Bold + Button@DISCONNECT: + X:(PARENT_RIGHT - WIDTH)/2 + Y:220 + Width:160 + Height:25 + Text:Abort Mission + Font:Bold + Background@DIPLOMACY_BG: + Logic:DiplomacyLogic + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:450 + Height:400 + Visible:false + Children: + Label@LABEL_TITLE: + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Diplomacy + Align:Center + Font:Bold + Button@CLOSE_DIPLOMACY: + X:(PARENT_RIGHT - WIDTH)/2 + Y:350 + Width:160 + Height:25 + Text:Close + Font:Bold + Key:escape + Background@PERF_BG: + ClickThrough:true + Background:dialog4 + Logic:PerfDebugLogic + X:10 + Y:WINDOW_BOTTOM - 250 + Width: 210 + Height: 250 + Children: + PerfGraph@GRAPH: + X:5 + Y:5 + Width:200 + Height:200 + Label@TEXT: + X:20 + Y:205 + Width:170 + Height:40 \ No newline at end of file diff --git a/mods/d2k/chrome/lobby.yaml b/mods/d2k/chrome/lobby.yaml index cbb4e9f03e..e1969e1cf1 100644 --- a/mods/d2k/chrome/lobby.yaml +++ b/mods/d2k/chrome/lobby.yaml @@ -433,70 +433,4 @@ Background@SERVER_LOBBY: Width:120 Height:25 Text:Start Game - Font:Bold -Background@COLOR_CHOOSER: - Logic:ColorPickerLogic - Background:dialog2 - Width:310 - Height:120 - Children: - Button@SAVE_BUTTON: - X:210 - Y:85 - Width:90 - Height:25 - Text:Save - Font:Bold - Button@RANDOM_BUTTON: - X:115 - Y:85 - Width:90 - Height:25 - Text:Random - Font:Bold - ShpImage@CARRYALL: - X:220 - Y:10 - Image:carryall - Palette:colorpicker - Label@HUE_LABEL: - X:0 - Y:5 - Width:40 - Height:20 - Align: Right - Text: Hue: - Slider@HUE: - X:43 - Y:10 - Width:160 - Height:20 - Ticks:5 - Label@SAT_LABEL: - X:0 - Y:30 - Width:40 - Height:20 - Align: Right - Text: Sat: - Slider@SAT: - X:43 - Y:35 - Width:160 - Height:20 - Ticks:5 - Label@LUM_LABEL: - X:0 - Y:55 - Width:40 - Height:20 - Align: Right - Text: Lum: - Slider@LUM: - X:43 - Y:60 - Width:160 - Height:20 - Ticks:5 - MinimumValue: 0.2 - MaximumValue: 1 + Font:Bold \ No newline at end of file diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index 30aa17706c..1af3dc4afa 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -9,22 +9,14 @@ Folders: ./mods/d2k ./mods/d2k/bits ./mods/d2k/uibits + ./mods/ra/uibits ~^/Content/d2k ~^/Content/d2k/GAMESFX ~^/Content/d2k/Music ~^/Content/d2k/Tilesets ~^/Content/d2k/SHPs - ./mods/ra/bits - ./mods/ra/uibits - ~^/Content/ra Packages: - ~main.mix - redalert.mix - conquer.mix - hires.mix - local.mix - sounds.mix Rules: mods/d2k/rules/system.yaml @@ -53,11 +45,14 @@ Assemblies: ChromeLayout: mods/d2k/chrome/gameinit.yaml - mods/ra/chrome/ingame.yaml + mods/d2k/chrome/ingame.yaml mods/ra/chrome/ingame-chat.yaml + mods/ra/chrome/ingame-observer.yaml + mods/ra/chrome/ingame-fmvplayer.yaml mods/d2k/chrome/mainmenu.yaml mods/ra/chrome/settings.yaml mods/d2k/chrome/lobby.yaml + mods/d2k/chrome/color-picker.yaml mods/ra/chrome/map-chooser.yaml mods/ra/chrome/create-server.yaml mods/ra/chrome/serverbrowser.yaml @@ -89,8 +84,8 @@ Movies: LoadScreen: D2kLoadScreen InstallerMenuWidget: INSTALL_PANEL - TestFile: plates.shp - PackageURL: http://open-ra.org/get-dependency.php?file=d2k-packages + TestFile: deathhandlaunch.shp + PackageURL: http://open-ra.org/get-dependency.php?file=d2k-complete-packages ServerTraits: LobbyCommands diff --git a/mods/d2k/notifications.yaml b/mods/d2k/notifications.yaml index 46af2a46c6..f00743a389 100644 --- a/mods/d2k/notifications.yaml +++ b/mods/d2k/notifications.yaml @@ -29,6 +29,9 @@ Speech: BuildingReady: BDRDY OrderPlaced: ORDER Reinforce: REINF + UnitLost: ULOST + BuildingLost: BLOST + BuildingCaptured: CAPT Sounds: Notifications: diff --git a/mods/d2k/rules/aircraft.yaml b/mods/d2k/rules/aircraft.yaml index 32d25b241b..5c79c341fa 100644 --- a/mods/d2k/rules/aircraft.yaml +++ b/mods/d2k/rules/aircraft.yaml @@ -140,6 +140,7 @@ ORNI.bomber: CARRYALL.infantry: ParaDrop: LZRange: 5 + ChuteSound: Inherits: ^Plane Health: HP: 200 diff --git a/mods/d2k/rules/defaults.yaml b/mods/d2k/rules/defaults.yaml index 4e8c4be5d4..c4e0e5d960 100644 --- a/mods/d2k/rules/defaults.yaml +++ b/mods/d2k/rules/defaults.yaml @@ -23,15 +23,7 @@ GainsExperience: GivesExperience: DrawLineToTarget: - ActorLostNotification@Atreides: - Race: atreides - Notification: AI_ULOST.AUD - ActorLostNotification@Harkonnen: - Race: harkonnen - Notification: HI_ULOST.AUD - ActorLostNotification@Ordos: - Race: ordos - Notification: OI_ULOST.AUD + ActorLostNotification: ProximityCaptor: Types:Vehicle GivesBounty: @@ -65,15 +57,7 @@ GainsExperience: GivesExperience: DrawLineToTarget: - ActorLostNotification@Atreides: - Race: atreides - Notification: AI_ULOST.AUD - ActorLostNotification@Harkonnen: - Race: harkonnen - Notification: HI_ULOST.AUD - ActorLostNotification@Ordos: - Race: ordos - Notification: OI_ULOST.AUD + ActorLostNotification: ProximityCaptor: Types:Tank GivesBounty: @@ -151,15 +135,7 @@ GainsExperience: GivesExperience: DrawLineToTarget: - ActorLostNotification@Atreides: - Race: atreides - Notification: AI_ULOST.AUD - ActorLostNotification@Harkonnen: - Race: harkonnen - Notification: HI_ULOST.AUD - ActorLostNotification@Ordos: - Race: ordos - Notification: OI_ULOST.AUD + ActorLostNotification: ProximityCaptor: Types:Infantry GivesBounty: @@ -183,15 +159,7 @@ GainsExperience: GivesExperience: DrawLineToTarget: - ActorLostNotification@Atreides: - Race: atreides - Notification: AI_ULOST.AUD - ActorLostNotification@Harkonnen: - Race: harkonnen - Notification: HI_ULOST.AUD - ActorLostNotification@Ordos: - Race: ordos - Notification: OI_ULOST.AUD + ActorLostNotification: DebugAircraftFacing: DebugAircraftSubPxX: DebugAircraftSubPxY: @@ -231,25 +199,11 @@ ActorTypes: rifle,rifle,rifle,rifle,rifle,bazooka,bazooka,bazooka,engineer MustBeDestroyed: GivesExperience: + FrozenUnderFog: - CaptureNotification@Atreides: - Race: atreides - Notification: AI_CAPT.AUD - CaptureNotification@Harkonnen: - Race: harkonnen - Notification: HI_CAPT.AUD - CaptureNotification@Ordos: - Race: ordos - Notification: OI_CAPT.AUD - ActorLostNotification@Atreides: - Race: atreides - Notification: AI_BLOST.AUD - ActorLostNotification@Harkonnen: - Race: harkonnen - Notification: HI_BLOST.AUD - ActorLostNotification@Ordos: - Race: ordos - Notification: OI_BLOST.AUD + CaptureNotification: + ActorLostNotification: + Notification: BuildingLost EditorAppearance: RelativeToTopLeft: yes AutoTargetIgnore: diff --git a/mods/d2k/rules/infantry.yaml b/mods/d2k/rules/infantry.yaml index 7ae0d51723..18ab40852c 100644 --- a/mods/d2k/rules/infantry.yaml +++ b/mods/d2k/rules/infantry.yaml @@ -22,7 +22,6 @@ RIFLE: TakeCover: -RenderInfantry: RenderInfantryProne: - IdleAnimations: idle1,idle2 ENGINEER: Inherits: ^Infantry @@ -81,7 +80,6 @@ BAZOOKA: TakeCover: -RenderInfantry: RenderInfantryProne: - IdleAnimations: idle1,idle2 MEDIC: Inherits: ^Infantry diff --git a/mods/d2k/rules/structures.yaml b/mods/d2k/rules/structures.yaml index 74beffbb3a..47cbd6c194 100644 --- a/mods/d2k/rules/structures.yaml +++ b/mods/d2k/rules/structures.yaml @@ -337,8 +337,8 @@ WALL: Value: 0 Tooltip: Name: Concrete Wall - Description: Stops units and blocks enemy fire - Icon: wallicon + Description: Stop units and blocks enemy fire. + Icon: wallaicon AppearsOnRadar: Building: BuildSounds: CHUNG.aud @@ -381,7 +381,7 @@ GUNTOWER: Tooltip: Name: Gun Tower Description: Defensive structure\n Strong vs Tanks\n Weak vs Infantry, Aircraft - Icon: turreticon + Icon: guntoweraicon Building: Power: -20 Adjacent: 4 @@ -434,9 +434,9 @@ ROCKETTOWER: Valued: Cost: 750 Tooltip: - Name: Missile Tower - Icon: rturreticon + Name: Rocket Tower Description: Defensive structure\n Strong vs Infantry, Aircraft\n Weak vs Tanks\n\n Requires power to operate + Icon: rockettoweraicon Building: Power: -30 Adjacent: 4 @@ -493,6 +493,7 @@ REPAIR: Tooltip: Name: Repair Pad Description: Repairs vehicles\n Allows construction of MCVs + Image: repairaicon Building: Power: -10 Footprint: =x= =x= === diff --git a/mods/d2k/rules/system.yaml b/mods/d2k/rules/system.yaml index 09e71085d8..6fb8569a82 100644 --- a/mods/d2k/rules/system.yaml +++ b/mods/d2k/rules/system.yaml @@ -299,7 +299,7 @@ World: ShadowIndex: 3 PaletteFromFile@effect: Name: effect - Filename: temperat.pal + Filename: d2k.pal ShadowIndex: 4 PaletteFromFile@colorpicker: Name: colorpicker @@ -355,7 +355,7 @@ World: BibWidths: 3, 2 ResourceLayer: ResourceClaimLayer: - ResourceType@spice: + ResourceType@Spice: ResourceType: 1 Palette: d2k TerrainType: Spice @@ -365,14 +365,16 @@ World: PipColor: green AllowedTerrainTypes: Sand AllowUnderActors: false - SmudgeLayer@rock: - Type:RockCrater - Types:rockcrater1,rockcrater2 - Depths:15,15 - SmudgeLayer@sand: - Type:SandCrater - Types:sandcrater1,sandcrater2 - Depths:15,15 + SmudgeLayer@Rock: + Type: RockCrater + Types: rockcrater1, rockcrater2 + Depths: 15, 15 + SmokePercentage: 0 + SmudgeLayer@Sand: + Type: SandCrater + Types: sandcrater1, sandcrater2 + Depths: 15, 15 + SmokePercentage: 0 SpawnMapActors: CreateMPPlayers: MPStartLocations: @@ -511,7 +513,7 @@ SPICEBLOOM: # Tooltip: # Name: Sandworm # Description: Attracted by vibrations in the sand. Will eat units whole and has a large appetite. -# Icon: wormjaw +# Icon: black # Health: # HP: 10000 # Radius: 3 diff --git a/mods/d2k/sequences.yaml b/mods/d2k/sequences.yaml index b1279d4fc9..e486d36878 100644 --- a/mods/d2k/sequences.yaml +++ b/mods/d2k/sequences.yaml @@ -212,14 +212,6 @@ rifle: Start: 48 Length: 12 Tick: 160 - idle1: rifledeath - Start: 60 - Length: 8 - Tick: 160 - idle2: rifledeath - Start: 68 - Length: 8 - Tick: 160 bazooka: stand: @@ -259,42 +251,28 @@ bazooka: Length: 5 Facings: 8 Tick: 120 - die1: - Start: 176 - Length: 8 - Tick: 120 - die2: - Start: 184 - Length: 8 - Tick: 120 - die3: - Start: 192 - Length: 8 - Tick: 120 - die4: - Start: 200 - Length: 8 - Tick: 120 - die5: - Start: 176 - Length: 8 - Tick: 120 - die6: - Start: 184 - Length: 8 - Tick: 120 - die-crushed: - Start: 208 - Length: 8 - Tick: 240 - idle1: - Start: 216 - Length: 8 - Tick: 160 - idle2: - Start: 224 - Length: 8 - Tick: 160 + die1: bazookadeath + Start: 0 + Length: 5 + die2: bazookadeath + Start: 5 + Length: 7 + die3: bazookadeath + Start: 12 + Length: 7 + die4: bazookadeath + Start: 19 + Length: 7 + die5: bazookadeath + Start: 26 + Length: 7 + die6: bazookadeath + Start: 26 + Length: 7 + die-crushed: bazookadeath + Start: 34 + Length: 26 + Tick: 1600 engineer: stand: @@ -307,35 +285,29 @@ engineer: Start: 8 Length: 6 Facings: 8 - Tick: 110 - die1: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die2: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 - Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath + Tick: 120 + die1: engineerdeath Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath + Length: 5 + die2: engineerdeath + Start: 5 + Length: 7 + die3: engineerdeath Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Length: 7 + die4: engineerdeath + Start: 19 + Length: 7 + die5: engineerdeath + Start: 26 + Length: 7 + die6: engineerdeath + Start: 26 + Length: 7 + die-crushed: engineerdeath + Start: 34 + Length: 26 + Tick: 1600 thumper: stand: @@ -349,49 +321,43 @@ thumper: Length: 6 Facings: 8 Tick: 120 - heal: - Start: 60 + heal: thumping + Start: 0 Length: 4 Tick: 480 - die1: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die2: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 - Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath + die1: thumperdeath Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath + Length: 5 + die2: thumperdeath + Start: 5 + Length: 7 + die3: thumperdeath Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Length: 7 + die4: thumperdeath + Start: 19 + Length: 7 + die5: thumperdeath + Start: 26 + Length: 7 + die6: thumperdeath + Start: 26 + Length: 7 + die-crushed: thumperdeath + Start: 34 + Length: 26 + Tick: 1600 thumping: - idle: thumper - Start: 56 + idle: + Start: 0 Length: 4 Tick: 150 - make: thumper - Start: 56 + make: + Start: 0 Length: 4 - damaged-idle: thumper - Start: 56 + damaged-idle: + Start: 0 Length: 4 Tick: 150 @@ -431,34 +397,28 @@ fremen: Length: 5 Facings: 8 Tick: 120 - die1: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die2: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 - Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath + die1: fremendeath Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath + Length: 5 + die2: fremendeath + Start: 5 + Length: 7 + die3: fremendeath Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Length: 7 + die4: fremendeath + Start: 19 + Length: 7 + die5: fremendeath + Start: 26 + Length: 7 + die6: fremendeath + Start: 26 + Length: 7 + die-crushed: fremendeath + Start: 34 + Length: 26 + Tick: 1600 saboteur: stand: @@ -467,39 +427,50 @@ saboteur: stand2: Start: 0 Facings: 8 + stand3: + Start: 0 + Facings: 8 run: Start: 8 - Length: 4 + Length: 6 Facings: 8 - Tick: 100 - die1: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die2: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 - Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath + Tick: 120 + prone-stand: + Start: 104 + Length: 1 + Facings: 8 + prone-run: + Start: 112 + Length: 3 + Facings: 8 + Tick: 120 + standup-0: + Start: 96 + Length: 1 + Facings: 8 + Tick: 120 + die1: saboteurdeath Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath + Length: 5 + die2: saboteurdeath + Start: 5 + Length: 7 + die3: saboteurdeath Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Length: 7 + die4: saboteurdeath + Start: 19 + Length: 7 + die5: saboteurdeath + Start: 26 + Length: 7 + die6: saboteurdeath + Start: 26 + Length: 7 + die-crushed: saboteurdeath + Start: 34 + Length: 26 + Tick: 1600 sardaukar: stand: @@ -537,34 +508,28 @@ sardaukar: Length: 5 Facings: 8 Tick: 120 - die1: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die2: rifledeath - Start: 12 - Length: 12 - Tick: 80 - die3: rifledeath - Start: 36 - Length: 12 - Tick: 80 - die4: rifledeath - Start: 24 - Length: 12 - Tick: 80 - die5: rifledeath + die1: sardaukardeath Start: 0 - Length: 12 - Tick: 80 - die6: rifledeath + Length: 5 + die2: sardaukardeath + Start: 5 + Length: 7 + die3: sardaukardeath Start: 12 - Length: 12 - Tick: 80 - die-crushed: rifledeath - Start: 48 - Length: 12 - Tick: 160 + Length: 7 + die4: sardaukardeath + Start: 19 + Length: 7 + die5: sardaukardeath + Start: 26 + Length: 7 + die6: sardaukardeath + Start: 26 + Length: 7 + die-crushed: sardaukardeath + Start: 34 + Length: 26 + Tick: 1600 conyarda: idle: @@ -791,7 +756,7 @@ pwrh: barrh: idle: Start: 0 - make: barramake + make: barrhmake Start: 0 Length: * damaged-idle: @@ -953,7 +918,7 @@ pwro: barro: idle: Start: 0 - make: barramake + make: barromake Start: 0 Length: * damaged-idle: @@ -1094,13 +1059,11 @@ pips: pip-green: dots Start: 1 -#falls back to RA, but looks ok clock: idle: Start: 0 Length: * -#falls back to RA, but looks ok powerdown: disabled: speed Start: 3 @@ -1111,7 +1074,6 @@ poweroff: Length: * Tick: 160 -#falls back to RA, but looks okay rank: rank: Start: 0 @@ -1137,90 +1099,47 @@ rallypoint: Start: 0 Length: * -#TODO: falls back to RA -dragon: +rpg: idle: Start: 0 Facings: 32 -#TODO: falls back to RA explosion: - piff: piff + piff: minipiff Start: 0 Length: * - piffs: piffpiff + piffs: minipiff Start: 0 Length: * - small_explosion: veh-hit3 + small_explosion: miniboom Start: 0 Length: * - med_explosion: veh-hit2 + med_explosion: mediboom Start: 0 Length: * - large_splash: h2o_exp1 + napalm: mediboom2 Start: 0 Length: * - napalm: napalm2 - Start: 0 - Length: * - napalm2: napalm2 + nuke: mushroomcloud Start: 0 Length: * Tick: 60 - nuke: atomsfx + napalm2: mediboom2 Start: 0 Length: * Tick: 60 - med_splash: h2o_exp2 + self_destruct: bigboom Start: 0 Length: * - self_destruct: art-exp1 + building: bigboom2 Start: 0 Length: * - building: fball1 + large_explosion: largeboom Start: 0 Length: * - small_splash: h2o_exp3 + small_napalm: miniboom2 Start: 0 Length: * - large_explosion: frag1 - Start: 0 - Length: * - small_napalm: napalm1 - Start: 0 - Length: * - -#TODO: falls back to RA -smokey: - idle: - Start: 0 - Length: * - -#TODO: falls back to RA -smoke_m: - idle: - Start: 0 - Length: * - loop: - Start: 49 - Length: 42 - end: - Start: 0 - Length: 26 - -#TODO: falls back to RA -120mm: - idle: - Start: 0 - -#TODO: falls back to RA -litning: - bright: - Start: 0 - Length: 4 - dim: - Start: 4 - Length: 4 crate: idle: crates @@ -1228,54 +1147,14 @@ crate: land: crates Start: 0 -#TODO: falls back to RA crate-effects: - speed: speed + dollar: selling Start: 0 Length: * - dollar: dollar + reveal-map: orbit Start: 0 Length: * - reveal-map: earth - Start: 0 - Length: * - hide-map: empulse - Start: 0 - Length: * - fpower: fpower - Start: 0 - Length: * - gps: gpsbox - Start: 0 - Length: * - invuln: invulbox - Start: 0 - Length: * - heal: invun - Start: 0 - Length: * - nuke: missile2 - Start: 0 - Length: * - parabombs: parabox - Start: 0 - Length: * - sonar: sonarbox - Start: 0 - Length: * - stealth: stealth2 - Start: 0 - Length: * - timequake: tquake - Start: 0 - Length: * - armor: armor - Start: 0 - Length: * - chrono: chronbox - Start: 0 - Length: * - airstrike: deviator + hide-map: reveal Start: 0 Length: * levelup: levelup @@ -1294,6 +1173,11 @@ missile: Start: 0 Facings: 32 +missile2: + idle: + Start: 0 + Facings: 32 + spicebloom: make: Start: 0 @@ -1346,24 +1230,6 @@ atomic: Start: 1 Length: 1 -# falls back to RA -parabomb: - open: - Start: 0 - Length: 8 - idle: - Start: 8 - Length: 5 - -# falls back to RA -parach: - open: - Start: 0 - Length: 5 - idle: - Start: 5 - Length: 11 - plates: idle: Start: 0 @@ -1379,7 +1245,7 @@ plates: Length: 6 fire: - 1: fire1 + 1: fire Start: 0 Length: * 2: fire2 @@ -1388,12 +1254,39 @@ fire: 3: fire3 Start: 0 Length: * - 4: fire4 + 4: fire Start: 0 Length: * +smoke_m: + idle: minifire + Start: 0 + Length: * + loop: minifire + Start: 0 + Length: * + end: minifire + Start: 0 + Length: 3 + palacec: idle: Start: 0 damaged-idle: - Start: 1 \ No newline at end of file + Start: 1 + +bombs: + open: + Start: 0 + Length: 4 + idle: + Start: 0 + Length: 4 + +parach: + open: + Start: 0 + Length: 5 + idle: + Start: 5 + Length: 11 diff --git a/mods/d2k/uibits/buttons.png b/mods/d2k/uibits/buttons.png index 181946ddc1..66ac266318 100644 Binary files a/mods/d2k/uibits/buttons.png and b/mods/d2k/uibits/buttons.png differ diff --git a/mods/d2k/uibits/dune2000-loadscreen.png b/mods/d2k/uibits/dune2000-loadscreen.png new file mode 100644 index 0000000000..d208752ef7 Binary files /dev/null and b/mods/d2k/uibits/dune2000-loadscreen.png differ diff --git a/mods/d2k/weapons.yaml b/mods/d2k/weapons.yaml index 26482f34cb..31171d3be7 100644 --- a/mods/d2k/weapons.yaml +++ b/mods/d2k/weapons.yaml @@ -30,9 +30,9 @@ Bazooka: High: true Shadow: yes Proximity: true - Trail: smokey + ContrailLength: 10 Inaccuracy: 3 - Image: DRAGON + Image: RPG ROT: 5 RangeLimit: 35 Warhead: @@ -44,11 +44,10 @@ Bazooka: Heavy: 90% Concrete: 40% Explosion: med_explosion - WaterExplosion: med_splash InfDeath: 4 SmudgeType: SandCrater, RockCrater Damage: 50 - ImpactSound: kaboom12 + ImpactSound: EXPLSML2 Sniper: ROF: 100 @@ -180,9 +179,8 @@ QuadRockets: Shadow: yes Proximity: yes Inaccuracy: 3 - Image: DRAGON + Image: MISSILE ROT: 10 - Trail: smokey Speed: 40 RangeLimit: 40 Warhead: @@ -195,8 +193,7 @@ QuadRockets: Concrete: 35% InfDeath: 4 Explosion: med_explosion - WaterExplosion: med_splash - ImpactSound: kaboom12 + ImpactSound: EXPLSML2 SmudgeType: SandCrater, RockCrater Damage: 25 @@ -236,7 +233,7 @@ TowerMissile: Shadow: yes Proximity: yes Inaccuracy: 12 - Image: DRAGON + Image: MISSILE2 ROT: 10 Trail: smokey Speed: 45 @@ -250,8 +247,8 @@ TowerMissile: Heavy: 40% Concrete: 35% InfDeath: 3 - Explosion: large_explosion - ImpactSound: kaboom12 + Explosion: small_explosion + ImpactSound: EXPLSML2 SmudgeType: SandCrater, RockCrater Damage: 50 @@ -316,7 +313,6 @@ DevBullet: Heavy: 100% Concrete: 50% Explosion: large_explosion - #ImpactSound: kaboom12 InfDeath: 4 SmudgeType: SandCrater, RockCrater Damage: 65 @@ -336,7 +332,7 @@ DevBullet: Shadow: yes Inaccuracy: 55 Angle: 0.2 - Image: MISSILE + Image: MISSILE2 ROT: 5 ContrailLength: 5 Warhead: @@ -348,9 +344,8 @@ DevBullet: Heavy: 80% Concrete: 80% InfDeath: 4 - Explosion: large_explosion - WaterExplosion: med_splash - ImpactSound: explsml1 + Explosion: med_explosion + ImpactSound: EXPLSML2 SmudgeType: SandCrater, RockCrater Damage: 50 @@ -375,10 +370,10 @@ FakeMissile: Light: 0% Heavy: 0% Concrete: 0% - Explosion: napalm2 - SmudgeType: + Explosion: med_explosion + SmudgeType: SandCrater, RockCrater Damage: 0 - ImpactSound: firebl3 + ImpactSound: EXPLSML2 155mm: ROF: 75 @@ -391,7 +386,6 @@ FakeMissile: Shadow: yes Angle: .1 Inaccuracy: 45 - Image: 120MM ContrailLength: 20 Warhead: Spread: 12 @@ -475,7 +469,7 @@ ParaBomb: Range: 4.5 Report: Projectile: GravityBomb - Image: PARABOMB + Image: BOMBS Warhead: Spread: 6 Versus: @@ -492,7 +486,7 @@ ParaBomb: Napalm: ROF: 2 Projectile: GravityBomb - Image: PARABOMB + Image: BOMBS Warhead: Spread: 20 Versus: diff --git a/mods/ra-classic/mod.yaml b/mods/ra-classic/mod.yaml index 9c0d6ce510..f626035688 100644 --- a/mods/ra-classic/mod.yaml +++ b/mods/ra-classic/mod.yaml @@ -57,9 +57,12 @@ ChromeLayout: mods/ra/chrome/gameinit.yaml mods/ra/chrome/ingame.yaml mods/ra/chrome/ingame-chat.yaml + mods/ra/chrome/ingame-observer.yaml + mods/ra/chrome/ingame-fmvplayer.yaml mods/ra/chrome/mainmenu.yaml mods/ra/chrome/settings.yaml mods/ra/chrome/lobby.yaml + mods/ra/chrome/color-picker.yaml mods/ra/chrome/map-chooser.yaml mods/ra/chrome/create-server.yaml mods/ra/chrome/serverbrowser.yaml diff --git a/mods/ra/chrome/color-picker.yaml b/mods/ra/chrome/color-picker.yaml new file mode 100644 index 0000000000..6de1830ecd --- /dev/null +++ b/mods/ra/chrome/color-picker.yaml @@ -0,0 +1,66 @@ +Background@COLOR_CHOOSER: + Logic:ColorPickerLogic + Background:dialog2 + Width:310 + Height:120 + Children: + Button@SAVE_BUTTON: + X:210 + Y:85 + Width:90 + Height:25 + Text:Save + Font:Bold + Button@RANDOM_BUTTON: + X:115 + Y:85 + Width:90 + Height:25 + Text:Random + Font:Bold + ShpImage@FACT: + X:220 + Y:10 + Image:fact + Palette:colorpicker + Label@HUE_LABEL: + X:0 + Y:5 + Width:40 + Height:20 + Align: Right + Text: Hue: + Slider@HUE: + X:43 + Y:10 + Width:160 + Height:20 + Ticks:5 + Label@SAT_LABEL: + X:0 + Y:30 + Width:40 + Height:20 + Align: Right + Text: Sat: + Slider@SAT: + X:43 + Y:35 + Width:160 + Height:20 + Ticks:5 + Label@LUM_LABEL: + X:0 + Y:55 + Width:40 + Height:20 + Align: Right + Text: Lum: + Slider@LUM: + X:43 + Y:60 + Width:160 + Height:20 + Ticks:5 + MinimumValue: 0.2 + MaximumValue: 1 diff --git a/mods/ra/chrome/ingame-fmvplayer.yaml b/mods/ra/chrome/ingame-fmvplayer.yaml new file mode 100644 index 0000000000..4a536b56b8 --- /dev/null +++ b/mods/ra/chrome/ingame-fmvplayer.yaml @@ -0,0 +1,10 @@ +Background@FMVPLAYER: + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + Background:dialog4 + Children: + VqaPlayer@PLAYER: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM \ No newline at end of file diff --git a/mods/ra/chrome/ingame-observer.yaml b/mods/ra/chrome/ingame-observer.yaml new file mode 100644 index 0000000000..e757831a99 --- /dev/null +++ b/mods/ra/chrome/ingame-observer.yaml @@ -0,0 +1,643 @@ +Container@OBSERVER_ROOT: + Visible:true + Logic:IngameObserverChromeLogic + Children: + WorldInteractionController@INTERACTION_CONTROLLER: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + ViewportScrollController: + X:0 + Y:0 + Width:WINDOW_RIGHT + Height:WINDOW_BOTTOM + Timer@GAME_TIMER: + X: WINDOW_RIGHT/2 + Y: 0-10 + Background@POSTGAME_BG: + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:400 + Height:100 + Background:dialog4 + Visible:false + Children: + Label@TEXT: + X:(PARENT_RIGHT - WIDTH)/2 + Y:0 + Width:200 + Height:80 + Align:Center + Button@POSTGAME_OBSERVE: + X:10 + Y:(PARENT_BOTTOM - HEIGHT - 10) + Width:150 + Height:25 + Font:Bold + Text:Observe + Button@POSTGAME_QUIT: + X:(PARENT_RIGHT - WIDTH - 10) + Y:(PARENT_BOTTOM - HEIGHT - 10) + Width:150 + Height:25 + Font:Bold + Text:Leave + SupportPowerBin@INGAME_POWERS_BIN: + X:0 + Y:25 + Button@INGAME_OPTIONS_BUTTON: + X:0 + Y:0 + Width:160 + Height:25 + Text:Options (ESC) + Font:Bold + Key:escape + Button@INGAME_STATS_BUTTON: + X:162 + Y:0 + Width:160 + Height:25 + Text:Statistics (F1) + Font:Bold + Key:f1 + Background@RADAR_BG: + X:WINDOW_RIGHT-255 + Y:5 + Width:250 + Height:250 + Children: + Radar@INGAME_RADAR: + X:10 + Y:10 + Width:PARENT_RIGHT-19 + Height:PARENT_BOTTOM-19 + WorldInteractionController:INTERACTION_CONTROLLER + DropDownButton@SHROUD_SELECTOR: + Logic:ObserverShroudSelectorLogic + X:WINDOW_RIGHT-250 + Y:260 + Width:240 + Height:25 + Font:Bold + Visible:true + WorldTooltip: + Background@INGAME_OPTIONS_BG: + X:(WINDOW_RIGHT - WIDTH)/2 + Y:(WINDOW_BOTTOM - HEIGHT)/2 + Width:300 + Height:295 + Visible:false + Children: + Label@LABEL_TITLE: + X:(PARENT_RIGHT - WIDTH)/2 + Y:20 + Width:250 + Height:25 + Text:Options + Align:Center + Font:Bold + Button@RESUME: + X:(PARENT_RIGHT - WIDTH)/2 + Y:60 + Width:160 + Height:25 + Text:Resume + Font:Bold + Key:escape + Button@SETTINGS: + X:(PARENT_RIGHT - WIDTH)/2 + Y:100 + Width:160 + Height:25 + Text:Settings + Font:Bold + Button@MUSIC: + X:(PARENT_RIGHT - WIDTH)/2 + Y:140 + Width:160 + Height:25 + Text:Music + Font:Bold + Button@SURRENDER: + X:(PARENT_RIGHT - WIDTH)/2 + Y:180 + Width:160 + Height:25 + Text:Surrender + Font:Bold + Button@DISCONNECT: + X:(PARENT_RIGHT - WIDTH)/2 + Y:220 + Width:160 + Height:25 + Text:Abort Mission + Font:Bold + Background@PERF_BG: + ClickThrough:true + Background:dialog4 + Logic:PerfDebugLogic + X:10 + Y:WINDOW_BOTTOM - 250 + Width: 210 + Height: 250 + Children: + PerfGraph@GRAPH: + X:5 + Y:5 + Width:200 + Height:200 + Label@TEXT: + X:20 + Y:205 + Width:170 + Height:40 + Container@OBSERVER_STATS: + Logic:ObserverStatsLogic + X:25 + Y:50 + Width:950 + Height:500 + Visible:false + Children: + Background@BACKGROUND: + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Background:dialog + Children: + Label@TITLE: + X:0 + Y:15 + Width:PARENT_RIGHT + Height:25 + Font:Bold + Align:Center + Text:Statistics + DropDownButton@STATS_DROPDOWN: + X:PARENT_RIGHT-200 + Y:15 + Width:185 + Height:25 + Font:Bold + Container@BASIC_STATS_HEADERS: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Children: + Label@PLAYER_HEADER: + X:85 + Y:40 + Width:160 + Height:25 + Font:Bold + Text:Player + Label@CASH_HEADER: + X:245 + Y:40 + Width:80 + Height:25 + Font:Bold + Text:Cash + Label@EARNED_MIN_HEADER: + X:325 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Earned/min + Label@POWER_HEADER: + X:425 + Y:40 + Width:80 + Height:25 + Font:Bold + Text:Power + Label@KILLS_HEADER: + X:505 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Kills + Align:Right + Label@DEATHS_HEADER: + X:565 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Deaths + Align:Right + Label@ACTIONS_MIN_HEADER: + X:665 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Actions/min + Align:Right + Container@ECONOMY_STATS_HEADERS: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Children: + Label@PLAYER_HEADER: + X:85 + Y:40 + Width:160 + Height:25 + Font:Bold + Text:Player + Label@CASH_HEADER: + X:245 + Y:40 + Width:80 + Height:25 + Font:Bold + Text:Cash + Label@EARNED_MIN_HEADER: + X:325 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Earned/min + Label@EARNED_THIS_MIN_HEADER: + X:425 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Earned this min + Label@ASSETS_HEADER: + X:565 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Assets + Label@EARNED_HEADER: + X:645 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Earned + Label@SPENT_HEADER: + X:725 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Spent + Label@HARVESTERS_HEADER: + X:805 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Harvesters + Align:Right + Container@PRODUCTION_STATS_HEADERS: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Children: + Label@PLAYER_HEADER: + X:85 + Y:40 + Width:160 + Height:25 + Font:Bold + Text:Player + Label@PRODUCTION_HEADER: + X:245 + Y:40 + Width:320 + Height:25 + Font:Bold + Text:Production + Label@SUPPORT_POWERS_HEADER: + X:565 + Y:40 + Width:320 + Height:25 + Font:Bold + Text:Support Powers + Container@COMBAT_STATS_HEADERS: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Children: + Label@PLAYER_HEADER: + X:85 + Y:40 + Width:160 + Height:25 + Font:Bold + Text:Player + Label@CONTROL_HEADER: + X:245 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Control + Label@KILLS_COST_HEADER: + X:325 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Kills + Label@DEATHS_COST_HEADER: + X:405 + Y:40 + Width:60 + Height:25 + Font:Bold + Text:Deaths + Label@UNITS_KILLED_HEADER: + X:505 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Units Killed + Align:Right + Label@UNITS_DEAD_HEADER: + X:605 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Units Lost + Align:Right + Label@BUILDINGS_KILLED_HEADER: + X:725 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Bldg Killed + Align:Right + Label@BUILDINGS_DEAD_HEADER: + X:825 + Y:40 + Width:40 + Height:25 + Font:Bold + Text:Bldg Lost + Align:Right + Container@EARNED_THIS_MIN_GRAPH_HEADERS: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Children: + Label@EARNED_THIS_MIN_HEADER: + X:0 + Y:40 + Width:PARENT_RIGHT + Height:25 + Font:Bold + Text:Earnings received each minute + Align:Center + ScrollPanel@PLAYER_STATS_PANEL: + X:25 + Y:70 + Width:PARENT_RIGHT-50 + Height:PARENT_BOTTOM-45-50 + ItemSpacing:5 + Children: + ScrollItem@TEAM_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-35 + Height:25 + Children: + Label@TEAM: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + Font:Bold + ScrollItem@BASIC_PLAYER_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-35 + Height:25 + Children: + Image@FLAG: + X:20 + Y:5 + Width:35 + Height:PARENT_BOTTOM-5 + ImageName:random + ImageCollection:flags + Label@PLAYER: + X:55 + Y:0 + Width:160 + Height:PARENT_BOTTOM + Font:Bold + Label@CASH: + X:215 + Y:0 + Width:80 + Height:PARENT_BOTTOM + Label@EARNED_MIN: + X:295 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@POWER: + X:395 + Y:0 + Width:80 + Height:PARENT_BOTTOM + Label@KILLS: + X:475 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Label@DEATHS: + X:535 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Label@ACTIONS_MIN: + X:635 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + ScrollItem@ECONOMY_PLAYER_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-35 + Height:25 + Children: + Image@FLAG: + X:20 + Y:5 + Width:35 + Height:PARENT_BOTTOM-5 + ImageName:random + ImageCollection:flags + Label@PLAYER: + X:55 + Y:0 + Width:160 + Height:PARENT_BOTTOM + Font:Bold + Label@CASH: + X:215 + Y:0 + Width:80 + Height:PARENT_BOTTOM + Label@EARNED_MIN: + X:295 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@EARNED_THIS_MIN: + X:395 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@ASSETS: + X:535 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@EARNED: + X:615 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@SPENT: + X:695 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@HARVESTERS: + X:775 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Align:Right + ScrollItem@PRODUCTION_PLAYER_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-35 + Height:25 + Children: + Image@FLAG: + X:20 + Y:5 + Width:35 + Height:PARENT_BOTTOM-5 + ImageName:random + ImageCollection:flags + Label@PLAYER: + X:55 + Y:0 + Width:160 + Height:PARENT_BOTTOM + Font:Bold + ObserverProductionIcons@PRODUCTION_ICONS: + X:215 + Y:0 + Width:320 + Height:PARENT_BOTTOM + ObserverSupportPowerIcons@SUPPORT_POWER_ICONS: + X:535 + Y:0 + Width:320 + Height:PARENT_BOTTOM + ScrollItem@COMBAT_PLAYER_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-35 + Height:25 + Children: + Image@FLAG: + X:20 + Y:5 + Width:35 + Height:PARENT_BOTTOM-5 + ImageName:random + ImageCollection:flags + Label@PLAYER: + X:55 + Y:0 + Width:160 + Height:PARENT_BOTTOM + Font:Bold + Label@CONTROL: + X:215 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@KILLS_COST: + X:295 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@DEATHS_COST: + X:375 + Y:0 + Width:60 + Height:PARENT_BOTTOM + Label@UNITS_KILLED: + X:475 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Label@UNITS_DEAD: + X:575 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Label@BUILDINGS_KILLED: + X:695 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Label@BUILDINGS_DEAD: + X:795 + Y:0 + Width:40 + Height:PARENT_BOTTOM + Align:Right + Container@EARNED_THIS_MIN_GRAPH_TEMPLATE: + X:0 + Y:0 + Width:PARENT_RIGHT-100 + Height:PARENT_BOTTOM-50 + Children: + LineGraph@EARNED_THIS_MIN_GRAPH: + X:0 + Y:0 + Width:PARENT_RIGHT + Height:PARENT_BOTTOM + ValueFormat:${0} + XAxisValueFormat:{0} + YAxisValueFormat:${0:F0} + XAxisSize:20 + YAxisSize:10 + XAxisLabel:m + YAxisLabel:$ + LabelFont:TinyBold + AxisFont:Bold \ No newline at end of file diff --git a/mods/ra/chrome/ingame.yaml b/mods/ra/chrome/ingame.yaml index cad3bc4f1d..da33fa2c65 100644 --- a/mods/ra/chrome/ingame.yaml +++ b/mods/ra/chrome/ingame.yaml @@ -227,657 +227,4 @@ Container@INGAME_ROOT: X:20 Y:205 Width:170 - Height:40 -Container@OBSERVER_ROOT: - Visible:true - Logic:IngameObserverChromeLogic - Children: - WorldInteractionController@INTERACTION_CONTROLLER: - X:0 - Y:0 - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM - ViewportScrollController: - X:0 - Y:0 - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM - Timer@GAME_TIMER: - X: WINDOW_RIGHT/2 - Y: 0-10 - Background@POSTGAME_BG: - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:400 - Height:100 - Background:dialog4 - Visible:false - Children: - Label@TEXT: - X:(PARENT_RIGHT - WIDTH)/2 - Y:0 - Width:200 - Height:80 - Align:Center - Button@POSTGAME_OBSERVE: - X:10 - Y:(PARENT_BOTTOM - HEIGHT - 10) - Width:150 - Height:25 - Font:Bold - Text:Observe - Button@POSTGAME_QUIT: - X:(PARENT_RIGHT - WIDTH - 10) - Y:(PARENT_BOTTOM - HEIGHT - 10) - Width:150 - Height:25 - Font:Bold - Text:Leave - SupportPowerBin@INGAME_POWERS_BIN: - X:0 - Y:25 - Button@INGAME_OPTIONS_BUTTON: - X:0 - Y:0 - Width:160 - Height:25 - Text:Options (ESC) - Font:Bold - Key:escape - Button@INGAME_STATS_BUTTON: - X:162 - Y:0 - Width:160 - Height:25 - Text:Statistics (F1) - Font:Bold - Key:f1 - Background@RADAR_BG: - X:WINDOW_RIGHT-255 - Y:5 - Width:250 - Height:250 - Children: - Radar@INGAME_RADAR: - X:10 - Y:10 - Width:PARENT_RIGHT-19 - Height:PARENT_BOTTOM-19 - WorldInteractionController:INTERACTION_CONTROLLER - DropDownButton@SHROUD_SELECTOR: - Logic:ObserverShroudSelectorLogic - X:WINDOW_RIGHT-250 - Y:260 - Width:240 - Height:25 - Font:Bold - Visible:true - WorldTooltip: - Background@INGAME_OPTIONS_BG: - X:(WINDOW_RIGHT - WIDTH)/2 - Y:(WINDOW_BOTTOM - HEIGHT)/2 - Width:300 - Height:295 - Visible:false - Children: - Label@LABEL_TITLE: - X:(PARENT_RIGHT - WIDTH)/2 - Y:20 - Width:250 - Height:25 - Text:Options - Align:Center - Font:Bold - Button@RESUME: - X:(PARENT_RIGHT - WIDTH)/2 - Y:60 - Width:160 - Height:25 - Text:Resume - Font:Bold - Key:escape - Button@SETTINGS: - X:(PARENT_RIGHT - WIDTH)/2 - Y:100 - Width:160 - Height:25 - Text:Settings - Font:Bold - Button@MUSIC: - X:(PARENT_RIGHT - WIDTH)/2 - Y:140 - Width:160 - Height:25 - Text:Music - Font:Bold - Button@SURRENDER: - X:(PARENT_RIGHT - WIDTH)/2 - Y:180 - Width:160 - Height:25 - Text:Surrender - Font:Bold - Button@DISCONNECT: - X:(PARENT_RIGHT - WIDTH)/2 - Y:220 - Width:160 - Height:25 - Text:Abort Mission - Font:Bold - Background@PERF_BG: - ClickThrough:true - Background:dialog4 - Logic:PerfDebugLogic - X:10 - Y:WINDOW_BOTTOM - 250 - Width: 210 - Height: 250 - Children: - PerfGraph@GRAPH: - X:5 - Y:5 - Width:200 - Height:200 - Label@TEXT: - X:20 - Y:205 - Width:170 - Height:40 - Container@OBSERVER_STATS: - Logic:ObserverStatsLogic - X:25 - Y:50 - Width:950 - Height:500 - Visible:false - Children: - Background@BACKGROUND: - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Background:dialog - Children: - Label@TITLE: - X:0 - Y:15 - Width:PARENT_RIGHT - Height:25 - Font:Bold - Align:Center - Text:Statistics - DropDownButton@STATS_DROPDOWN: - X:PARENT_RIGHT-200 - Y:15 - Width:185 - Height:25 - Font:Bold - Container@BASIC_STATS_HEADERS: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Children: - Label@PLAYER_HEADER: - X:85 - Y:40 - Width:160 - Height:25 - Font:Bold - Text:Player - Label@CASH_HEADER: - X:245 - Y:40 - Width:80 - Height:25 - Font:Bold - Text:Cash - Label@EARNED_MIN_HEADER: - X:325 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Earned/min - Label@POWER_HEADER: - X:425 - Y:40 - Width:80 - Height:25 - Font:Bold - Text:Power - Label@KILLS_HEADER: - X:505 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Kills - Align:Right - Label@DEATHS_HEADER: - X:565 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Deaths - Align:Right - Label@ACTIONS_MIN_HEADER: - X:665 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Actions/min - Align:Right - Container@ECONOMY_STATS_HEADERS: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Children: - Label@PLAYER_HEADER: - X:85 - Y:40 - Width:160 - Height:25 - Font:Bold - Text:Player - Label@CASH_HEADER: - X:245 - Y:40 - Width:80 - Height:25 - Font:Bold - Text:Cash - Label@EARNED_MIN_HEADER: - X:325 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Earned/min - Label@EARNED_THIS_MIN_HEADER: - X:425 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Earned this min - Label@ASSETS_HEADER: - X:565 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Assets - Label@EARNED_HEADER: - X:645 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Earned - Label@SPENT_HEADER: - X:725 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Spent - Label@HARVESTERS_HEADER: - X:805 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Harvesters - Align:Right - Container@PRODUCTION_STATS_HEADERS: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Children: - Label@PLAYER_HEADER: - X:85 - Y:40 - Width:160 - Height:25 - Font:Bold - Text:Player - Label@PRODUCTION_HEADER: - X:245 - Y:40 - Width:320 - Height:25 - Font:Bold - Text:Production - Label@SUPPORT_POWERS_HEADER: - X:565 - Y:40 - Width:320 - Height:25 - Font:Bold - Text:Support Powers - Container@COMBAT_STATS_HEADERS: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Children: - Label@PLAYER_HEADER: - X:85 - Y:40 - Width:160 - Height:25 - Font:Bold - Text:Player - Label@CONTROL_HEADER: - X:245 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Control - Label@KILLS_COST_HEADER: - X:325 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Kills - Label@DEATHS_COST_HEADER: - X:405 - Y:40 - Width:60 - Height:25 - Font:Bold - Text:Deaths - Label@UNITS_KILLED_HEADER: - X:505 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Units Killed - Align:Right - Label@UNITS_DEAD_HEADER: - X:605 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Units Lost - Align:Right - Label@BUILDINGS_KILLED_HEADER: - X:725 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Bldg Killed - Align:Right - Label@BUILDINGS_DEAD_HEADER: - X:825 - Y:40 - Width:40 - Height:25 - Font:Bold - Text:Bldg Lost - Align:Right - Container@EARNED_THIS_MIN_GRAPH_HEADERS: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Children: - Label@EARNED_THIS_MIN_HEADER: - X:0 - Y:40 - Width:PARENT_RIGHT - Height:25 - Font:Bold - Text:Earnings received each minute - Align:Center - ScrollPanel@PLAYER_STATS_PANEL: - X:25 - Y:70 - Width:PARENT_RIGHT-50 - Height:PARENT_BOTTOM-45-50 - ItemSpacing:5 - Children: - ScrollItem@TEAM_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-35 - Height:25 - Children: - Label@TEAM: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - Font:Bold - ScrollItem@BASIC_PLAYER_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-35 - Height:25 - Children: - Image@FLAG: - X:20 - Y:5 - Width:35 - Height:PARENT_BOTTOM-5 - ImageName:random - ImageCollection:flags - Label@PLAYER: - X:55 - Y:0 - Width:160 - Height:PARENT_BOTTOM - Font:Bold - Label@CASH: - X:215 - Y:0 - Width:80 - Height:PARENT_BOTTOM - Label@EARNED_MIN: - X:295 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@POWER: - X:395 - Y:0 - Width:80 - Height:PARENT_BOTTOM - Label@KILLS: - X:475 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Label@DEATHS: - X:535 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Label@ACTIONS_MIN: - X:635 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - ScrollItem@ECONOMY_PLAYER_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-35 - Height:25 - Children: - Image@FLAG: - X:20 - Y:5 - Width:35 - Height:PARENT_BOTTOM-5 - ImageName:random - ImageCollection:flags - Label@PLAYER: - X:55 - Y:0 - Width:160 - Height:PARENT_BOTTOM - Font:Bold - Label@CASH: - X:215 - Y:0 - Width:80 - Height:PARENT_BOTTOM - Label@EARNED_MIN: - X:295 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@EARNED_THIS_MIN: - X:395 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@ASSETS: - X:535 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@EARNED: - X:615 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@SPENT: - X:695 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@HARVESTERS: - X:775 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Align:Right - ScrollItem@PRODUCTION_PLAYER_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-35 - Height:25 - Children: - Image@FLAG: - X:20 - Y:5 - Width:35 - Height:PARENT_BOTTOM-5 - ImageName:random - ImageCollection:flags - Label@PLAYER: - X:55 - Y:0 - Width:160 - Height:PARENT_BOTTOM - Font:Bold - ObserverProductionIcons@PRODUCTION_ICONS: - X:215 - Y:0 - Width:320 - Height:PARENT_BOTTOM - ObserverSupportPowerIcons@SUPPORT_POWER_ICONS: - X:535 - Y:0 - Width:320 - Height:PARENT_BOTTOM - ScrollItem@COMBAT_PLAYER_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-35 - Height:25 - Children: - Image@FLAG: - X:20 - Y:5 - Width:35 - Height:PARENT_BOTTOM-5 - ImageName:random - ImageCollection:flags - Label@PLAYER: - X:55 - Y:0 - Width:160 - Height:PARENT_BOTTOM - Font:Bold - Label@CONTROL: - X:215 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@KILLS_COST: - X:295 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@DEATHS_COST: - X:375 - Y:0 - Width:60 - Height:PARENT_BOTTOM - Label@UNITS_KILLED: - X:475 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Label@UNITS_DEAD: - X:575 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Label@BUILDINGS_KILLED: - X:695 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Label@BUILDINGS_DEAD: - X:795 - Y:0 - Width:40 - Height:PARENT_BOTTOM - Align:Right - Container@EARNED_THIS_MIN_GRAPH_TEMPLATE: - X:0 - Y:0 - Width:PARENT_RIGHT-100 - Height:PARENT_BOTTOM-50 - Children: - LineGraph@EARNED_THIS_MIN_GRAPH: - X:0 - Y:0 - Width:PARENT_RIGHT - Height:PARENT_BOTTOM - ValueFormat:${0} - XAxisValueFormat:{0} - YAxisValueFormat:${0:F0} - XAxisSize:20 - YAxisSize:10 - XAxisLabel:m - YAxisLabel:$ - LabelFont:TinyBold - AxisFont:Bold -Background@FMVPLAYER: - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM - Background:dialog4 - Children: - VqaPlayer@PLAYER: - X:0 - Y:0 - Width:WINDOW_RIGHT - Height:WINDOW_BOTTOM + Height:40 \ No newline at end of file diff --git a/mods/ra/chrome/lobby.yaml b/mods/ra/chrome/lobby.yaml index 353b85f3e0..3b85458a1a 100644 --- a/mods/ra/chrome/lobby.yaml +++ b/mods/ra/chrome/lobby.yaml @@ -432,70 +432,4 @@ Background@SERVER_LOBBY: Width:120 Height:25 Text:Start Game - Font:Bold -Background@COLOR_CHOOSER: - Logic:ColorPickerLogic - Background:dialog2 - Width:310 - Height:120 - Children: - Button@SAVE_BUTTON: - X:210 - Y:85 - Width:90 - Height:25 - Text:Save - Font:Bold - Button@RANDOM_BUTTON: - X:115 - Y:85 - Width:90 - Height:25 - Text:Random - Font:Bold - ShpImage@FACT: - X:220 - Y:10 - Image:fact - Palette:colorpicker - Label@HUE_LABEL: - X:0 - Y:5 - Width:40 - Height:20 - Align: Right - Text: Hue: - Slider@HUE: - X:43 - Y:10 - Width:160 - Height:20 - Ticks:5 - Label@SAT_LABEL: - X:0 - Y:30 - Width:40 - Height:20 - Align: Right - Text: Sat: - Slider@SAT: - X:43 - Y:35 - Width:160 - Height:20 - Ticks:5 - Label@LUM_LABEL: - X:0 - Y:55 - Width:40 - Height:20 - Align: Right - Text: Lum: - Slider@LUM: - X:43 - Y:60 - Width:160 - Height:20 - Ticks:5 - MinimumValue: 0.2 - MaximumValue: 1 + Font:Bold \ No newline at end of file diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml index 01fe43e4ab..bbe96b670d 100644 --- a/mods/ra/mod.yaml +++ b/mods/ra/mod.yaml @@ -56,9 +56,12 @@ ChromeLayout: mods/ra/chrome/gameinit.yaml mods/ra/chrome/ingame.yaml mods/ra/chrome/ingame-chat.yaml + mods/ra/chrome/ingame-observer.yaml + mods/ra/chrome/ingame-fmvplayer.yaml mods/ra/chrome/mainmenu.yaml mods/ra/chrome/settings.yaml mods/ra/chrome/lobby.yaml + mods/ra/chrome/color-picker.yaml mods/ra/chrome/map-chooser.yaml mods/ra/chrome/create-server.yaml mods/ra/chrome/serverbrowser.yaml diff --git a/mods/ra/notifications.yaml b/mods/ra/notifications.yaml index cfcde2d486..aeab522df8 100644 --- a/mods/ra/notifications.yaml +++ b/mods/ra/notifications.yaml @@ -20,6 +20,11 @@ Speech: Cancelled: cancld1 Building: abldgin1 ConstructionComplete: conscmp1 + UnitLost: unitlst1 + NavalUnitLost: navylst1 + AirUnitLost: aunitl1 + BuildingCaptured: strucap1 + Sounds: Notifications: diff --git a/mods/ra/rules/defaults.yaml b/mods/ra/rules/defaults.yaml index 954c4a685e..754bf76834 100644 --- a/mods/ra/rules/defaults.yaml +++ b/mods/ra/rules/defaults.yaml @@ -26,7 +26,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlst1.aud ProximityCaptor: Types:Vehicle GivesBounty: @@ -64,7 +63,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlst1.aud ProximityCaptor: Types:Tank GivesBounty: @@ -110,7 +108,6 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: unitlst1.aud ProximityCaptor: Types:Infantry GivesBounty: @@ -145,7 +142,7 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: navylst1.aud + Notification: NavalUnitLost ProximityCaptor: Types:Ship GivesBounty: @@ -169,7 +166,7 @@ GivesExperience: DrawLineToTarget: ActorLostNotification: - Notification: aunitl1.aud + Notification: AirUnitLost DebugAircraftFacing: DebugAircraftSubPxX: DebugAircraftSubPxY: @@ -217,7 +214,6 @@ GivesExperience: # FrozenUnderFog: CaptureNotification: - Notification: strucap1.aud EditorAppearance: RelativeToTopLeft: yes ShakeOnDeath: