mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 04:26:27 +00:00
Compare commits
462 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c5bf35f81 | |||
| f8443f6ef9 | |||
| 9aede79908 | |||
| b1d98cff04 | |||
| 170fc8e8b0 | |||
| 3ce370aadb | |||
| 8e0a4557ed | |||
| 45aedb2874 | |||
| da94100582 | |||
| aba6a7f118 | |||
| d4ffe7c887 | |||
| 4d40c8dc7d | |||
| c3075c8e5b | |||
| d63e9eaef4 | |||
| cbc1198f19 | |||
| b65b7d95e7 | |||
| 348fa3347c | |||
| e219bb5832 | |||
| 95d36130e4 | |||
| c362ce0565 | |||
| a69f957c86 | |||
| 8a3318240f | |||
| 7e6098a19f | |||
| 97e4f0fd5d | |||
| eb5a83fc8f | |||
| 782bf32e53 | |||
| bf8a0bda32 | |||
| e9d7aa1879 | |||
| eccf787ec8 | |||
| 6629323f8d | |||
| b1247e77cd | |||
| b50fa144f3 | |||
| 9c66b4d4f3 | |||
| c198e27e89 | |||
| f21eb03bf2 | |||
| bdc1946dc3 | |||
| cccfaecdfe | |||
| be69735582 | |||
| 7d95a68a20 | |||
| 80df13f47b | |||
| 579f1acb6f | |||
| 424410ea07 | |||
| 96787667cb | |||
| 78fe8e1e62 | |||
| f7a7e9765a | |||
| 7e3ca5516f | |||
| 7c0c044fa8 | |||
| db137737ba | |||
| d2adbca5c6 | |||
| a4bf03996b | |||
| 5233e4c0a7 | |||
| f2de3ea2ee | |||
| 2f1f528f1c | |||
| 0eeffd05bd | |||
| b8a375656e | |||
| 486e002008 | |||
| 3082da9be9 | |||
| d5c664e36e | |||
| 3eb4d73438 | |||
| 0e5ef2f2e8 | |||
| 0a168f8436 | |||
| f489e1205a | |||
| aa6ad53e80 | |||
| 255bb29ab8 | |||
| 5f720dcace | |||
| 10b94a6741 | |||
| bab589e8a3 | |||
| d22656034e | |||
| 238792a524 | |||
| 19e258d36c | |||
| c12d2ac0be | |||
| 9e2d97a9c0 | |||
| 06d95fb861 | |||
| 8fa5e80043 | |||
| bc59102801 | |||
| b6f1251089 | |||
| 4332f37462 | |||
| 2a0c04c930 | |||
| cd3277d101 | |||
| e3c3dd1026 | |||
| f6120eb8e6 | |||
| a088a9e3aa | |||
| 63c7d3d52f | |||
| 185571845f | |||
| b65f8ae23a | |||
| 550cac253d | |||
| 3f0f1f78fb | |||
| 85f60c4d28 | |||
| 56ce7f7809 | |||
| 21c52b5dcd | |||
| 7a7ebaa983 | |||
| 1a76c3b848 | |||
| 81191a6ea7 | |||
| 0210288ef1 | |||
| 8b33f5cfd2 | |||
| e100f7264b | |||
| db3deba8dd | |||
| d9a56d2765 | |||
| c4eb410d0d | |||
| 5b120012df | |||
| cf667d335a | |||
| d578f53ee2 | |||
| ac76bd6fef | |||
| dfcabe4db3 | |||
| 8f26bff788 | |||
| cb7a4f8b1a | |||
| 33fef3a6fb | |||
| 832c4d3a57 | |||
| cef1c1b69a | |||
| e0ed496458 | |||
| 89532feab6 | |||
| 706153f8ee | |||
| e847f5f69e | |||
| 05c5596827 | |||
| ec6b9dfc28 | |||
| 65f3126f04 | |||
| a28a5ef934 | |||
| e2ad017092 | |||
| 48aabdf177 | |||
| 90fdd26cf1 | |||
| d5b8a39fdd | |||
| 5c7b1d8241 | |||
| ee0c812b67 | |||
| 142bd05380 | |||
| 1389f11b6e | |||
| 1433bd9ad9 | |||
| 2d10077581 | |||
| a267c64ff7 | |||
| 0fe7cd7edc | |||
| c23497f326 | |||
| 7d2411e6cb | |||
| 2469fdf8c6 | |||
| 9a00398e24 | |||
| b48c35c512 | |||
| cda3a7eedf | |||
| 07d48a5c9a | |||
| 7429cc2b95 | |||
| fd52ec7786 | |||
| 1ff6d44f9e | |||
| a9e3368c8b | |||
| 4530b45665 | |||
| 8a096711ae | |||
| 7b4f6dece1 | |||
| 05afd7796c | |||
| e8253249a2 | |||
| fc7d303ee4 | |||
| a4fbf46deb | |||
| 6366ad728f | |||
| ded514644e | |||
| 769a927446 | |||
| c1b6b6d76e | |||
| ce17fc4e3f | |||
| ba4de704b0 | |||
| 8c09b777e2 | |||
| 3dc491efb7 | |||
| 47e1e23721 | |||
| 4185aa348a | |||
| ad6c4b6abe | |||
| ab5d1f8482 | |||
| 6146d948ad | |||
| f2b61d2e56 | |||
| cd6ce56632 | |||
| 52b73d4445 | |||
| 0e81ee4f60 | |||
| e933986351 | |||
| e33124631b | |||
| 3b958b4a1c | |||
| abda9576b1 | |||
| ae866e2cb4 | |||
| e1cb8f6e10 | |||
| e909567004 | |||
| 2915e9a85e | |||
| 8729d1115d | |||
| 9d25dad969 | |||
| be02410dd4 | |||
| fc958db168 | |||
| 29dc9c3094 | |||
| dace16913f | |||
| fcc02d85c4 | |||
| bb77e3a300 | |||
| 53de4a8d5d | |||
| 9f6f4d8bd1 | |||
| 072751858b | |||
| 2d1fe050b9 | |||
| 9090545852 | |||
| 0a3b120aa8 | |||
| b059824b76 | |||
| cbebe83b37 | |||
| f9ef989f6d | |||
| 9a53cc1395 | |||
| 1890b1df49 | |||
| 81121ca1e8 | |||
| bf5e94c6e4 | |||
| 8a4443e4c7 | |||
| 37dad6eb62 | |||
| 85336397a3 | |||
| f9dc6d9d69 | |||
| 60985a3bc9 | |||
| 9e487bac30 | |||
| 13dc7a9210 | |||
| 192107a522 | |||
| d204180ed0 | |||
| 976529d280 | |||
| 762aad3be5 | |||
| eb9d5c9f39 | |||
| 05122a4e80 | |||
| dc2b2aeff4 | |||
| a5a8367ed8 | |||
| c84d31e298 | |||
| 605e9f97bf | |||
| 0cd825e552 | |||
| f627229294 | |||
| e13aeee36c | |||
| 27e5581d27 | |||
| a4dc290c23 | |||
| da438151f0 | |||
| d9c65c82cf | |||
| 32f68b7a4b | |||
| ed959b8da7 | |||
| a6f5784c5c | |||
| f2f0263a3d | |||
| 9af4851508 | |||
| 4bd86230b1 | |||
| b37185f6db | |||
| 6c859fc6bb | |||
| 509f4387d7 | |||
| 881d3cebf4 | |||
| 3eb1ed0139 | |||
| c26a369762 | |||
| 1c2472e67a | |||
| 6368331412 | |||
| d92e74ee51 | |||
| 730a89152c | |||
| 5406a68959 | |||
| 36d897c694 | |||
| d05d410b46 | |||
| 82e044c790 | |||
| 947efe70d1 | |||
| 5d116c2b8f | |||
| 5f07107609 | |||
| 49af1880f8 | |||
| 308cb26dd4 | |||
| 6b26820090 | |||
| 5c3f3c2e15 | |||
| 36c6318296 | |||
| a0fb46b5d6 | |||
| 89c22993a4 | |||
| 5a2d7365f9 | |||
| b12845e6b4 | |||
| 8872bad668 | |||
| e8f6be0bf3 | |||
| 9f97610cb2 | |||
| 939f056794 | |||
| 7bd2f1c925 | |||
| 7679d1073b | |||
| b9df1d3451 | |||
| fab7bf4fcf | |||
| 609f1643d5 | |||
| b40b5b8414 | |||
| a13f38c9b4 | |||
| a85c8218e9 | |||
| ec973ee005 | |||
| 18c48492ef | |||
| 0f0ac2bcd5 | |||
| cda5dfbf12 | |||
| ff85950cb7 | |||
| 1b8471da1f | |||
| 132f9bd63b | |||
| 7b27fcb716 | |||
| 8e5f87f240 | |||
| 5288cda0ba | |||
| ecee073860 | |||
| 68fe745eb7 | |||
| 9be60bf29d | |||
| e4c6cd8b85 | |||
| 13705a71e0 | |||
| ca0f54f17a | |||
| dc909411a8 | |||
| d724ff2b69 | |||
| a681ff1189 | |||
| 26e249797f | |||
| bcebde9c8e | |||
| e51849b29f | |||
| 19ae44ad17 | |||
| 819f354cca | |||
| 2726f6ed88 | |||
| d605e85ae5 | |||
| 6d2ff5162e | |||
| 5fd0d3b543 | |||
| 0adcad8662 | |||
| c513b5e35e | |||
| a02eb067f4 | |||
| 0952fa879c | |||
| 511a36e45a | |||
| ed3d4c5197 | |||
| 4a2adece07 | |||
| 065e13b4d5 | |||
| 5570126bca | |||
| 336c938296 | |||
| 633c366847 | |||
| b9bd7ff86e | |||
| f378e2e651 | |||
| 76e6b04c71 | |||
| c5b512584a | |||
| 52eabed63d | |||
| fc5c998dc6 | |||
| 81c9a9b1f1 | |||
| 93125e29d4 | |||
| 083e7a41fd | |||
| 0748c5a75e | |||
| 22191bfcc6 | |||
| fad5182d6c | |||
| 9ed3b3f801 | |||
| 154bee8f5c | |||
| 5d992994d4 | |||
| 2d662a1228 | |||
| 94e9a8b459 | |||
| acbb59d982 | |||
| 6aeb5c64de | |||
| 9430de3d85 | |||
| 7e67e816c9 | |||
| bd3c395d00 | |||
| 6bcb3f5695 | |||
| 0401d07659 | |||
| 22cf7d4d83 | |||
| 6304797cbd | |||
| 14fbdb9aae | |||
| f258ce921d | |||
| 0cf9dbf9c6 | |||
| f73a44527d | |||
| e7ac0926a7 | |||
| 3cc1c7e24e | |||
| 328d33b9e9 | |||
| 2ecbfa81c3 | |||
| 22f2878c26 | |||
| a1f925a378 | |||
| b63cc7b18d | |||
| 04ec40259b | |||
| 4e4a5fd8a6 | |||
| 8fee3d8ef8 | |||
| 239685d754 | |||
| e7677a48e2 | |||
| 29a178d9d6 | |||
| 8a400f7b97 | |||
| b892d35fea | |||
| f32beb879b | |||
| 8bc942d271 | |||
| 27e895b1b0 | |||
| 2a9e7f9449 | |||
| 3afbab309a | |||
| 713197b98d | |||
| 3b70097dbe | |||
| cbbc4e148b | |||
| 5516f11fc2 | |||
| 3d9d6bd3dc | |||
| cdfeeab25f | |||
| c072e8a85d | |||
| f0fe1b0b28 | |||
| b2837e2878 | |||
| 955f94976e | |||
| 78fd3a2ba2 | |||
| 2612cd511d | |||
| 51b99950c4 | |||
| 18f6d55dc0 | |||
| 813fed5b9e | |||
| 17d8807566 | |||
| 3f950d1774 | |||
| 44742dd78d | |||
| cdd10cf8d2 | |||
| a32dff97b5 | |||
| 7ff8b75c89 | |||
| 153357f640 | |||
| f9d7c1246d | |||
| cdbd347466 | |||
| 15df4aa4be | |||
| ce42cd611a | |||
| 8da2640f5e | |||
| 83f7639ac9 | |||
| b2be81c51f | |||
| 0b5e959a31 | |||
| 8ed6a0b335 | |||
| 840a404952 | |||
| 708e9cea05 | |||
| 9edfe0fbcd | |||
| b738f27283 | |||
| ead45aa957 | |||
| 65d87eaee7 | |||
| c33246d603 | |||
| 0d23e3f333 | |||
| 2d9e473483 | |||
| bb3e37725d | |||
| edb063dbc8 | |||
| af5fad90fa | |||
| 7c47df6c8e | |||
| 68c978ea75 | |||
| 37d7769d53 | |||
| aeddb5fb48 | |||
| a31ce6a3ce | |||
| be3eb579d4 | |||
| d20582e1dc | |||
| 426bd5561d | |||
| 5eec0485f1 | |||
| ea7f65818a | |||
| 7d0b5e2b39 | |||
| b8819cfe75 | |||
| 2f0bd8d8b0 | |||
| c7ba150c40 | |||
| 364f76c5ff | |||
| dd054c8d97 | |||
| 4ca278c48f | |||
| 516b5279a9 | |||
| 5870b77865 | |||
| d3da151676 | |||
| 84608d7001 | |||
| dcc8042e61 | |||
| 9118f5cb98 | |||
| d86bb7cf73 | |||
| 0aba4006cc | |||
| e8e4d37c8d | |||
| 5dd08d3cb0 | |||
| 1ebc3333b0 | |||
| b551a744cc | |||
| 1e470d37ff | |||
| befba20acb | |||
| 0dc3ae487d | |||
| 76ff2cc83a | |||
| fcab9e3b5e | |||
| 8eb7af4ac9 | |||
| a3e88e6705 | |||
| de2f377ee0 | |||
| 486d2854e4 | |||
| ce7ffb24ff | |||
| ca42649c5b | |||
| f28ae0d427 | |||
| 7f74693052 | |||
| f02e67d012 | |||
| 5940c64886 | |||
| b08e142193 | |||
| 5ada37e8fa | |||
| 6e13e0fa49 | |||
| 7a4d86b58f | |||
| e31e3aa763 | |||
| af57bc2262 | |||
| e03138ea22 | |||
| c8c7799528 | |||
| fe878cedc2 | |||
| 9c3b41644a | |||
| 6217522b6f | |||
| 6396ad950a | |||
| 799bc98d86 | |||
| 704ce541ba | |||
| 6d95933cd7 | |||
| bb33a259b6 | |||
| 21830623d5 | |||
| 51c574bcc5 | |||
| 0496007f5e | |||
| 73e825f9f7 | |||
| 0fd79bf9cd | |||
| bfef903c94 | |||
| 20ebb2b829 | |||
| c964904e1b | |||
| 5169a05237 |
@@ -29,6 +29,7 @@ bpp = 0
|
||||
|
||||
fancywater = true
|
||||
shadows = true
|
||||
shadowpcf = true
|
||||
vsync = false
|
||||
|
||||
nos3tc = false
|
||||
@@ -136,7 +137,8 @@ hotkey.cut = "Ctrl+X" ; Cut selected text and copy to the clipboar
|
||||
; > ENTITY SELECTION
|
||||
hotkey.selection.add = Shift ; Add units to selection
|
||||
hotkey.selection.remove = Ctrl ; Remove units from selection
|
||||
hotkey.selection.idle = Period ; Select next idle unit
|
||||
hotkey.selection.idleworker = Period ; Select next idle worker
|
||||
hotkey.selection.idlewarrior = Comma ; Select next idle warrior
|
||||
hotkey.selection.offscreen = Alt ; Include offscreen units in selection
|
||||
hotkey.selection.group.select.0 = 0
|
||||
hotkey.selection.group.save.0 = "Ctrl+0"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TerritoryManager>
|
||||
<ImpassableCost>4</ImpassableCost>
|
||||
<BorderThickness>0.5</BorderThickness>
|
||||
<BorderSeparation>0.55</BorderSeparation>
|
||||
</TerritoryManager>
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/cavalryidle.psa" name="Idle" speed="50"/>
|
||||
<animation file="biped/cavalryidle.psa" name="Walk" speed="50"/>
|
||||
<animation file="biped/rider_gallop.psa" name="Run" speed="8"/>
|
||||
<animation event=".5" file="biped/rider_javelin_atk_a.psa" load="0" name="Melee" speed="50"/>
|
||||
<animation file="cavalry/sword/attack/rider_sword_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="cavalry/spear/attack/rider_spear_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="biped/rider_sword_death_a.psa" name="death" speed="230"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_numid_all.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/shields/numidian_round_1.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
<texture>skeletal/kart_cjv_a_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
<castshadow/>
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/cavalryidle.psa" name="Idle" speed="50"/>
|
||||
<animation file="biped/cavalryidle.psa" name="Walk" speed="50"/>
|
||||
<animation file="biped/rider_gallop.psa" name="Run" speed="8"/>
|
||||
<animation event=".5" file="biped/rider_javelin_atk_a.psa" load="0" name="Melee" speed="50"/>
|
||||
<animation file="cavalry/sword/attack/rider_sword_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="cavalry/spear/attack/rider_spear_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="biped/rider_sword_death_a.psa" name="death" speed="230"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_numid_all.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/kart_cjv_b_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
<material>player_trans.xml</material>
|
||||
</actor>
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/cavalryidle.psa" name="Idle" speed="50"/>
|
||||
<animation file="biped/cavalryidle.psa" name="Walk" speed="50"/>
|
||||
<animation file="biped/rider_gallop.psa" name="Run" speed="8"/>
|
||||
<animation event=".5" file="biped/rider_javelin_atk_a.psa" load="0" name="Melee" speed="50"/>
|
||||
<animation file="cavalry/sword/attack/rider_sword_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="cavalry/spear/attack/rider_spear_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="biped/rider_sword_death_a.psa" name="death" speed="230"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_numid_all.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/shields/numidian_round_3.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
<texture>skeletal/kart_cjv_e_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,33 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
<castshadow/>
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/cavalryidle.psa" name="Idle" speed="20"/>
|
||||
<animation file="biped/cavalryidle.psa" name="Walk" speed="20"/>
|
||||
<animation file="cavalry/rider_gallop.psa" name="run" speed="8"/>
|
||||
<animation event="0.5" file="cavalry/spear/attack/rider_spear_shield_atk_a.psa" name="Attack" speed="100"/>
|
||||
<animation file="cavalry/sword/attack/rider_sword_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="cavalry/spear/attack/rider_spear_shield_atk_a.psa" name="gather_meat" speed="100"/>
|
||||
<animation file="biped/rider_sword_death_a.psa" name="death" speed="230"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/heads/samnite_test.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/cart_tarantine_a.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
<group>
|
||||
<variant frequency="1" name="pectoral-tripledisc">
|
||||
<texture>skeletal/kart_csp_a_1.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="pectoral-muscled">
|
||||
<texture>skeletal/kart_csp_e_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
<material>player_trans.xml</material>
|
||||
</actor>
|
||||
@@ -1,103 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation event="0.4" file="infantry/javelin/attack/ijv_off_01.psa" load="0" name="Melee" speed="100"/>
|
||||
<animation file="infantry/general/dude/dudewalk.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_long.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_su1.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/heads/iber_helmet_04.xml" attachpoint="helmet"/>
|
||||
</props>
|
||||
<texture>skeletal/kart_ijv_a_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="loaded-r_hand"/>
|
||||
<prop actor="props/units/weapons/jav_projectile.xml" attachpoint="projectile"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
<prop attachpoint=""/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,95 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation event="0.4" file="infantry/javelin/attack/ijv_off_01.psa" load="0" name="Melee" speed="100"/>
|
||||
<animation file="infantry/general/dude/dudewalk.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_isl_b.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/iber_isw_b_3.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="loaded-r_hand"/>
|
||||
<prop actor="props/units/weapons/jav_projectile.xml" attachpoint="projectile"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,102 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation event="0.4" file="infantry/javelin/attack/ijv_off_01.psa" load="0" name="Melee" speed="100"/>
|
||||
<animation file="infantry/general/dude/dudewalk.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_su1.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/heads/celt_helmet_b.xml" attachpoint="helmet"/>
|
||||
</props>
|
||||
<texture>skeletal/kart_ijv_e_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/jav.xml" attachpoint="loaded-r_hand"/>
|
||||
<prop actor="props/units/weapons/jav_projectile.xml" attachpoint="projectile"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,97 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/dudewalk_swordshield.psa" name="walk" speed="18"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="run" speed="8"/>
|
||||
<animation event="0.5" file="biped/inf_sling_atk_a.psa" name="melee" speed="150"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_adv.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/heads/iber_helmet_02.xml" attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="tunic-beige">
|
||||
<texture>skeletal/iber_isw_b_3.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,100 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/dudewalk_swordshield.psa" name="walk" speed="18"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="run" speed="8"/>
|
||||
<animation event="0.5" file="biped/inf_sling_atk_a.psa" name="melee" speed="150"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_isl_b.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint=""/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="tunic-brown">
|
||||
<texture>skeletal/iber_isl_b_1.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="tunic-beige">
|
||||
<texture>skeletal/iber_isl_b_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,98 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/dudewalk_swordshield.psa" name="walk" speed="18"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="run" speed="8"/>
|
||||
<animation event="0.5" file="biped/inf_sling_atk_a.psa" name="melee" speed="150"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_iber_basic.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/heads/iber_helmet_01.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/shields/iberian_buckler_adv.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="tunic-quilted-beige">
|
||||
<texture>skeletal/iber_isl_e_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/sling.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,96 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
<castshadow/>
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/walk_spearshield.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="12"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="12"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation event="0.5" file="biped/inf_spear_shield_atk_b.psa" name="melee" speed="100"/>
|
||||
<animation event="0.5" file="infantry/sword/attack/isw_s_def_06.psa" name="melee" speed="100"/>
|
||||
<animation file="infantry/general/dude/dudedeath_sword.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/shields/kart_round_isp_basic.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/heads/head_pers_a.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/heads/kart_isp_b.xml" attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
<group>
|
||||
<variant frequency="1" name="Liby-Phoenician-Tunic-brown">
|
||||
<texture>skeletal/kart_isp_b_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/kart_round_isp_basic.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
<material>player_trans.xml</material>
|
||||
</actor>
|
||||
@@ -1,108 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_b.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/walk_spearshield.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="12"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="12"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation event="0.5" file="biped/inf_spear_shield_atk_b.psa" name="melee" speed="100"/>
|
||||
<animation event="0.5" file="infantry/sword/attack/isw_s_def_06.psa" name="melee" speed="100"/>
|
||||
<animation file="infantry/general/dude/dudedeath_sword.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<props>
|
||||
<prop actor="props/units/shields/kart_round_isp_e.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/heads/kart_isp_e.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/heads/head_pers_a.xml" attachpoint="head"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Liby-Phoenician-Chainmail-1">
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<texture>skeletal/kart_isp_e_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/kart_round_isp_e.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="l_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,127 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/walk_spearshield.psa" name="Walk" speed="20"/>
|
||||
<animation event="0.5" file="infantry/sword/attack/isw_s_off_05.psa" name="Melee" speed="100"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="200"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tights.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_lime.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/shields/celt_scutum_a.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Tattoos-1">
|
||||
<mesh>skeletal/m_tights.dae</mesh>
|
||||
<texture>skeletal/celt_ijv_e_01.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Tattoos-2">
|
||||
<mesh>skeletal/m_tights.dae</mesh>
|
||||
<texture>skeletal/celt_ijv_e_02.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="3" name="Tattoos-3">
|
||||
<mesh>skeletal/m_tights.dae</mesh>
|
||||
<texture>skeletal/kart_isw_a_01.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="3" name="Tattoos-4">
|
||||
<mesh>skeletal/m_tights.dae</mesh>
|
||||
<texture>skeletal/kart_isw_a_02.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="10" name="Trousers-1">
|
||||
<mesh>skeletal/m_pants.dae</mesh>
|
||||
<texture>skeletal/kart_isw_a_03.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="10" name="Trousers-2">
|
||||
<mesh>skeletal/m_pants.dae</mesh>
|
||||
<texture>skeletal/kart_isw_a_04.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="20" name="Trousers-3">
|
||||
<mesh>skeletal/m_pants.dae</mesh>
|
||||
<texture>skeletal/kart_isw_a_05.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/shields/celt_scutum_a.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,110 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/walk_spearshield.psa" name="Walk" speed="20"/>
|
||||
<animation event="0.5" file="infantry/sword/attack/isw_s_off_05.psa" name="Melee" speed="100"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="200"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_pants.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_celt.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/celt_round_b.xml" attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Pants-1">
|
||||
<texture>skeletal/celt_ijv_a_01.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Pants-2">
|
||||
<texture>skeletal/celt_ijv_a_02.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Pants-3">
|
||||
<texture>skeletal/celt_ijv_a_03.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Pants-4">
|
||||
<texture>skeletal/celt_ijv_a_04.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,113 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="100"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="97"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="95"/>
|
||||
<animation file="biped/inf_sword_ready_a.dae" name="Idle" speed="80"/>
|
||||
<animation file="biped/walk_spearshield.psa" name="Walk" speed="20"/>
|
||||
<animation event="0.5" file="infantry/sword/attack/isw_s_off_05.psa" name="Melee" speed="100"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_off_01.psa" name="Run" speed="5"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_def_02.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/sword/move/run/isw_s_em_03.psa" name="Run" speed="10"/>
|
||||
<animation file="infantry/general/dude/dudebuild.psa" name="Build" speed="150"/>
|
||||
<animation file="infantry/general/forage.psa" name="gather_fruit" speed="50"/>
|
||||
<animation file="biped/hoe.psa" name="gather_grain" speed="100"/>
|
||||
<animation file="infantry/general/chop.psa" name="gather_wood" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_stone" speed="100"/>
|
||||
<animation file="infantry/general/mine.psa" name="gather_metal" speed="100"/>
|
||||
<animation file="infantry/general/death/inf_01.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_02.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_03.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_04.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_06.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="Death" speed="200"/>
|
||||
</animations>
|
||||
<props>
|
||||
<prop actor="props/units/heads/celt_helmet_b.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/heads/head_celt.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/shields/celt_dip.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Body Armour-1">
|
||||
<mesh>skeletal/m_pants.dae</mesh>
|
||||
<texture>skeletal/kart_isw_e_01.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Body Armour-2">
|
||||
<mesh>skeletal/m_pants_celt.dae</mesh>
|
||||
<texture>skeletal/celt_isw_e_02.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
<props>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/shields/celt_scutum_e.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spatha.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_wood">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/axe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_grain">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/hoe.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_fruit">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/basket.xml" attachpoint="l_leg"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_stone">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop actor="" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="gather_metal">
|
||||
<props>
|
||||
<prop actor="props/units/tools/pick.xml" attachpoint="l_hand"/>
|
||||
<prop attachpoint="r_hand"/>
|
||||
<prop attachpoint="shield"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
<variant name="Build">
|
||||
<props>
|
||||
<prop actor="" attachpoint="shield"/>
|
||||
<prop actor="" attachpoint="l_hand"/>
|
||||
<prop actor="props/units/tools/mallet.xml" attachpoint="r_hand"/>
|
||||
<prop attachpoint="helmet"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
<animation file="infantry/general/dude/dudeidle.psa" name="Idle" speed="200"/>
|
||||
<animation file="biped/dudewalk_swordshield.psa" name="Walk" speed="20"/>
|
||||
<animation file="infantry/general/dude/dudedeath_sword.psa" name="Death" speed="200"/>
|
||||
<animation file="infantry/general/dude/dudedecay_sword.psa" name="Corpse" speed="100"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_dress_a.pmd</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/head_pers_a.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/heads/hele_straw.xml" attachpoint="helmet"/>
|
||||
</props>
|
||||
<texture>skeletal/hele_trd.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -18,16 +16,17 @@
|
||||
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/shields/rome_parma_a.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/cape_hd_cav.xml" attachpoint="shoulders"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Texture-Body">
|
||||
<texture>skeletal/rome_isp_a.dds</texture>
|
||||
<variant frequency="1" name="Chainmail-Plain">
|
||||
<texture>skeletal/rome_csp_a.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Chainmail-Shoulder detail">
|
||||
<texture>skeletal/rome_isp_e_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -18,16 +16,14 @@
|
||||
<prop actor="props/units/heads/rome_monte_simple.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/rome_parma_b.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/cape_hd_cav.xml" attachpoint="shoulders"/>
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="texture">
|
||||
<texture>skeletal/rome_csp_b.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<prop actor="props/units/heads/rome_head_veteran.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/shields/rome_parma_e.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/cape_hd_cav.xml" attachpoint="shoulders"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_csp_e.dds</texture>
|
||||
</variant>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -19,11 +17,10 @@
|
||||
<prop actor="props/units/heads/rome_head_hero_scipio.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/gladus.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/rome_parma_hero_2.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/cape_hd_cav.xml" attachpoint="shoulders"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_hero_marcellus.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<prop actor="props/units/heads/rome_head_hero_scipio.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/weapons/gladus.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/rome_parma_hero_1.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/cape_m_med.xml" attachpoint="shoulders"/>
|
||||
<prop actor="props/units/cape_hd_cav.xml" attachpoint="shoulders"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_hero_3.dds</texture>
|
||||
</variant>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
@@ -30,10 +28,16 @@
|
||||
<prop actor="props/units/shields/rome_scutum_a.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear_lance.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_isp_a.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Chainmail-Shoulder Doubling">
|
||||
<texture>skeletal/rome_isp_a_1.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="Chainmail-No Shoulder Doubling">
|
||||
<texture>skeletal/rome_isp_a_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -84,7 +88,5 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
@@ -30,10 +28,9 @@
|
||||
<prop actor="props/units/shields/rome_scutum_b.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/spear_lance.xml" attachpoint="r_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_isw_e.dds</texture>
|
||||
<texture>skeletal/rome_isw_a.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -84,7 +81,5 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -27,6 +25,7 @@
|
||||
<animation file="infantry/general/death/inf_06.psa" name="death" speed="300"/>
|
||||
<animation file="infantry/general/death/inf_07.psa" name="death" speed="300"/>
|
||||
</animations>
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<props>
|
||||
<prop actor="props/units/heads/rome_etrusco_e.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/heads/rome_head_veteran.xml" attachpoint="head"/>
|
||||
@@ -35,14 +34,14 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="armour-texture-1">
|
||||
<mesh>skeletal/m_tunic_short.dae</mesh>
|
||||
<variant frequency="1" name="armour-texture-Color Shoulders">
|
||||
<texture>skeletal/rome_isp_e_1.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="armour-texture-White Shoulders">
|
||||
<texture>skeletal/rome_isp_e_2.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -96,7 +95,5 @@
|
||||
<texture>skeletal/bloodied/rome_isp_e_1.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="100" name="Base">
|
||||
<animations>
|
||||
@@ -26,11 +24,11 @@
|
||||
<prop actor="props/units/heads/head_hele_b.xml" attachpoint="head"/>
|
||||
<prop actor="props/units/shields/rome_scutum_a.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/gladus.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/weapons/pillum.xml" attachpoint="l_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_isw_a.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -81,7 +79,5 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -29,13 +27,17 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="texture-1">
|
||||
<variant frequency="1" name="pectoral--plain">
|
||||
<texture>skeletal/rome_isw_b.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="pectoral--muscle">
|
||||
<texture>skeletal/rome_isw_b_2.dds</texture>
|
||||
</variant>
|
||||
<variant frequency="1" name="pectoral">
|
||||
<texture>skeletal/rome_isw_b_3.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -86,7 +88,5 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<actor version="1">
|
||||
|
||||
<castshadow/>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Base">
|
||||
<animations>
|
||||
@@ -27,11 +25,11 @@
|
||||
<prop actor="props/units/heads/rome_monte_e.xml" attachpoint="helmet"/>
|
||||
<prop actor="props/units/weapons/gladus.xml" attachpoint="r_hand"/>
|
||||
<prop actor="props/units/shields/rome_scutum_e.xml" attachpoint="shield"/>
|
||||
<prop actor="props/units/weapons/pillum.xml" attachpoint="l_hand"/>
|
||||
</props>
|
||||
<texture>skeletal/rome_isw_e.dds</texture>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<variant frequency="1" name="Idle"/>
|
||||
<variant name="Melee">
|
||||
@@ -82,7 +80,5 @@
|
||||
</props>
|
||||
</variant>
|
||||
</group>
|
||||
|
||||
<material>player_trans.xml</material>
|
||||
|
||||
</actor>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,4 +0,0 @@
|
||||
const SIZE = 64;
|
||||
|
||||
init(SIZE, "grass dirt 50", 0);
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
init(256, "grass_mediterranean_green_50", 0);
|
||||
@@ -1 +0,0 @@
|
||||
init(400, "grass_mediterranean_green_50", 0);
|
||||
@@ -1 +0,0 @@
|
||||
init(512, "grass_mediterranean_green_50", 0);
|
||||
@@ -1,336 +0,0 @@
|
||||
// constants
|
||||
|
||||
const SIZE = 208;
|
||||
const NUM_PLAYERS = 4;
|
||||
|
||||
|
||||
const tGrass = ["grass_temperate_pasture_a", "grass_temperate_pasture_b"];
|
||||
const tGrassForest = "grass_temperate_a";
|
||||
const tCliff = ["cliff_temperate_granite", "cliff_temperate_brown"];
|
||||
const tForest = "forestfloor_temperate_a";
|
||||
const tGrassDirt75 = "grass_temperate_dirt_2";
|
||||
const tGrassDirt50 = "grass_temperate_dirt_b";
|
||||
const tGrassDirt25 = "grass_temperate_dry_dirt";
|
||||
const tDirt = "dirt_temperate_b_dry";
|
||||
const tGrassPatch = "grass_temperate_field_wild";
|
||||
const tShore = "shoreline_temperate_rocks";
|
||||
const tShoreBlend = "shoreline_temperate_rocks_dirt";
|
||||
const tWater = "sand_temperate_vegetation";
|
||||
|
||||
const oTree = "flora_tree_oak";
|
||||
const oTreeLarge = "flora_tree_oak";
|
||||
const oBerryBush = "flora_bush_berry";
|
||||
const oSheep = "fauna_sheep";
|
||||
const oDeer = "fauna_deer";
|
||||
const oMine = "geology_stone_temperate";
|
||||
const oGrass = "props/flora/grass_temp_field.xml";
|
||||
const oGrassShort = "props/flora/grass_field_lush_short.xml";
|
||||
const oReeds = "props/flora/grass_temp_field_dry.xml";
|
||||
const oRockLarge = "geology/stone_granite_large.xml";
|
||||
const oRockMedium = "flora_bush_temperate";
|
||||
const oBushMedium = "props/flora/bush_tempe_me.xml";
|
||||
const oBushSmall = "props/flora/bush_tempe_sm.xml";
|
||||
|
||||
// initialize map
|
||||
|
||||
println("Initializing map...");
|
||||
init(SIZE, tGrass, 3);
|
||||
|
||||
// create tile classes
|
||||
|
||||
clPlayer = createTileClass();
|
||||
clHill = createTileClass();
|
||||
clForest = createTileClass();
|
||||
clWater = createTileClass();
|
||||
clSettlement = createTileClass();
|
||||
clDirt = createTileClass();
|
||||
clRock = createTileClass();
|
||||
clFood = createTileClass();
|
||||
clBaseResource = createTileClass();
|
||||
|
||||
// place players
|
||||
|
||||
playerX = new Array(NUM_PLAYERS+1);
|
||||
playerY = new Array(NUM_PLAYERS+1);
|
||||
playerAngle = new Array(NUM_PLAYERS+1);
|
||||
|
||||
startAngle = randFloat() * 2 * PI;
|
||||
for(i=1; i<=NUM_PLAYERS; i++) {
|
||||
playerAngle[i] = startAngle + i*2*PI/NUM_PLAYERS;
|
||||
playerX[i] = 0.5 + 0.35*cos(playerAngle[i]);
|
||||
playerY[i] = 0.5 + 0.35*sin(playerAngle[i]);
|
||||
}
|
||||
|
||||
for(i=1; i<=NUM_PLAYERS; i++) {
|
||||
println("Creating base for player " + i + "...");
|
||||
|
||||
// some constants
|
||||
radius = 17;
|
||||
cliffRadius = 2;
|
||||
elevation = 20;
|
||||
|
||||
// get the x and y in tiles
|
||||
fx = fractionToTiles(playerX[i]);
|
||||
fy = fractionToTiles(playerY[i]);
|
||||
ix = round(fx);
|
||||
iy = round(fy);
|
||||
|
||||
// calculate size based on the radius
|
||||
size = PI * radius * radius;
|
||||
|
||||
// create the hill
|
||||
placer = new ClumpPlacer(size, 0.95, 0.6, 0, ix, iy);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[cliffRadius], // widths
|
||||
[tCliff, tGrass] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(
|
||||
ELEVATION_SET, // type
|
||||
elevation, // elevation
|
||||
cliffRadius // blend radius
|
||||
);
|
||||
createArea(placer, [terrainPainter, elevationPainter, paintClass(clPlayer)], null);
|
||||
|
||||
// create the ramp
|
||||
rampAngle = playerAngle[i] + PI + (2*randFloat()-1)*PI/8;
|
||||
rampDist = radius - 1;
|
||||
rampX = round(fx + rampDist * cos(rampAngle));
|
||||
rampY = round(fy + rampDist * sin(rampAngle));
|
||||
placer = new ClumpPlacer(100, 0.9, 0.5, 0, rampX, rampY);
|
||||
painter = new SmoothElevationPainter(ELEVATION_SET, elevation-6, 5);
|
||||
createArea(placer, painter, null);
|
||||
placer = new ClumpPlacer(75, 0.9, 0.5, 0, rampX, rampY);
|
||||
painter = new TerrainPainter(tGrass);
|
||||
createArea(placer, painter, null);
|
||||
|
||||
// create the central dirt patch
|
||||
placer = new ClumpPlacer(PI*3.5*3.5, 0.3, 0.1, 0, ix, iy);
|
||||
painter = new LayeredPainter(
|
||||
[1,1,1], // widths
|
||||
[tGrassDirt75, tGrassDirt50, tGrassDirt25, tDirt] // terrains
|
||||
);
|
||||
createArea(placer, painter, null);
|
||||
|
||||
// create the TC and the "villies"
|
||||
group = new SimpleGroup(
|
||||
[ // elements (type, count, distance)
|
||||
new SimpleObject("hele_civil_centre", 1,1, 0,0),
|
||||
new SimpleObject("hele_infantry_javelinist_b", 3,3, 5,5)
|
||||
],
|
||||
true, null, ix, iy
|
||||
);
|
||||
createObjectGroup(group, i);
|
||||
|
||||
// Create the Settlement under the TC
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject("special_settlement", 1,1, 0,0)],
|
||||
true, null, ix, iy
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create berry bushes
|
||||
bbAngle = randFloat()*2*PI;
|
||||
bbDist = 9;
|
||||
bbX = round(fx + bbDist * cos(bbAngle));
|
||||
bbY = round(fy + bbDist * sin(bbAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oBerryBush, 5,5, 0,2)],
|
||||
true, clBaseResource, bbX, bbY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create mines
|
||||
mAngle = bbAngle;
|
||||
while(abs(mAngle - bbAngle) < PI/3) {
|
||||
mAngle = randFloat()*2*PI;
|
||||
}
|
||||
mDist = 9;
|
||||
mX = round(fx + mDist * cos(mAngle));
|
||||
mY = round(fy + mDist * sin(mAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oMine, 4,4, 0,2)],
|
||||
true, clBaseResource, mX, mY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create starting straggler trees
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oTree, 3,3, 8,12)],
|
||||
true, clBaseResource, ix, iy
|
||||
);
|
||||
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
|
||||
|
||||
// create grass tufts
|
||||
for(j=0; j<10; j++) {
|
||||
gAngle = randFloat()*2*PI;
|
||||
gDist = 6 + randInt(9);
|
||||
gX = round(fx + gDist * cos(gAngle));
|
||||
gY = round(fy + gDist * sin(gAngle));
|
||||
group = new SimpleGroup([new SimpleObject(oGrassShort, 3,6, 0,1, -PI/8,PI/8)],
|
||||
false, clBaseResource, gX, gY);
|
||||
createObjectGroup(group, 0);
|
||||
}
|
||||
}
|
||||
|
||||
// create lakes
|
||||
println("Creating lakes...");
|
||||
placer = new ClumpPlacer(140, 0.8, 0.1, 0);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[1,1], // widths
|
||||
[tShoreBlend, tShore, tWater] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -7, 3);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clWater)],
|
||||
avoidClasses(clPlayer, 2, clWater, 20),
|
||||
round(1.3 * NUM_PLAYERS)
|
||||
);
|
||||
|
||||
// create bumps
|
||||
println("Creating bumps...");
|
||||
placer = new ClumpPlacer(10, 0.3, 0.06, 0);
|
||||
painter = new SmoothElevationPainter(ELEVATION_MODIFY, 2, 2);
|
||||
createAreas(placer, painter,
|
||||
avoidClasses(clWater, 2, clPlayer, 0),
|
||||
SIZE*SIZE/100
|
||||
);
|
||||
|
||||
// create hills
|
||||
println("Creating hills...");
|
||||
placer = new ClumpPlacer(30, 0.2, 0.1, 0);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[3], // widths
|
||||
[tCliff, [tGrass,tGrass,tGrassDirt75]] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_SET, 12, 2);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clHill)],
|
||||
avoidClasses(clPlayer, 2, clWater, 5, clHill, 15),
|
||||
2 * NUM_PLAYERS
|
||||
);
|
||||
|
||||
// create forests
|
||||
println("Creating forests...");
|
||||
placer = new ClumpPlacer(32, 0.1, 0.1, 0);
|
||||
painter = new LayeredPainter([2], [[tGrassForest, tGrass, tForest],
|
||||
[tGrassForest, tForest]]);
|
||||
createAreas(placer, [painter, paintClass(clForest)],
|
||||
avoidClasses(clPlayer, 1, clWater, 3, clForest, 10, clHill, 0),
|
||||
6 * NUM_PLAYERS
|
||||
);
|
||||
|
||||
// create dirt patches
|
||||
println("Creating dirt patches...");
|
||||
var sizes = [8,14,20];
|
||||
for(i=0; i<sizes.length; i++) {
|
||||
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0);
|
||||
painter = new LayeredPainter([1,1], [
|
||||
[tGrass,tGrassDirt75],[tGrassDirt75,tGrassDirt50],
|
||||
[tGrassDirt50,tGrassDirt25]]);
|
||||
createAreas(placer, [painter, paintClass(clDirt)],
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 0),
|
||||
SIZE*SIZE/4000
|
||||
);
|
||||
}
|
||||
|
||||
// create grass patches
|
||||
println("Creating grass patches...");
|
||||
var sizes = [5,9,13];
|
||||
for(i=0; i<sizes.length; i++) {
|
||||
placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0);
|
||||
painter = new TerrainPainter(tGrassPatch);
|
||||
createAreas(placer, painter,
|
||||
avoidClasses(clWater, 1, clForest, 0, clHill, 0, clDirt, 5, clPlayer, 0),
|
||||
SIZE*SIZE/4000
|
||||
);
|
||||
}
|
||||
|
||||
// create mines
|
||||
println("Creating mines...");
|
||||
group = new SimpleGroup([new SimpleObject(oMine, 4,6, 0,2)], true, clRock);
|
||||
createObjectGroups(group, 0,
|
||||
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clRock, 13),
|
||||
new BorderTileClassConstraint(clHill, 0, 4)],
|
||||
3 * NUM_PLAYERS, 100
|
||||
);
|
||||
|
||||
// create settlements
|
||||
println("Creating settlements...");
|
||||
group = new SimpleGroup([new SimpleObject("special_settlement", 1,1, 0,0)], true, clSettlement);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 15, clHill, 0, clRock, 5, clSettlement, 35),
|
||||
2 * NUM_PLAYERS, 50
|
||||
);
|
||||
|
||||
// create small decorative rocks
|
||||
println("Creating large decorative rocks...");
|
||||
group = new SimpleGroup([new SimpleObject(oRockMedium, 1,3, 0,1)], true);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0, clSettlement, 3),
|
||||
SIZE*SIZE/1000, 50
|
||||
);
|
||||
|
||||
// create large decorative rocks
|
||||
println("Creating large decorative rocks...");
|
||||
group = new SimpleGroup([new SimpleObject(oRockLarge, 1,2, 0,1),
|
||||
new SimpleObject(oRockMedium, 1,3, 0,2)], true);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clForest, 0, clPlayer, 0, clHill, 0, clSettlement, 5),
|
||||
SIZE*SIZE/2000, 50
|
||||
);
|
||||
|
||||
// create deer
|
||||
println("Creating deer...");
|
||||
group = new SimpleGroup([new SimpleObject(oDeer, 5,7, 0,4)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0, clFood, 20, clSettlement, 5),
|
||||
3 * NUM_PLAYERS, 50
|
||||
);
|
||||
|
||||
// create sheep
|
||||
println("Creating sheep...");
|
||||
group = new SimpleGroup([new SimpleObject(oSheep, 2,3, 0,2)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill, 0, clFood, 20, clSettlement, 5),
|
||||
3 * NUM_PLAYERS, 50
|
||||
);
|
||||
|
||||
// create straggler trees
|
||||
println("Creating straggler trees...");
|
||||
group = new SimpleGroup([new SimpleObject(oTree, 1,1, 0,0)], true);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 1, clForest, 1, clHill, 1, clPlayer, 1, clSettlement, 2),
|
||||
SIZE*SIZE/1100
|
||||
);
|
||||
|
||||
// create small grass tufts
|
||||
println("Creating small grass tufts...");
|
||||
group = new SimpleGroup([new SimpleObject(oGrassShort, 3,6, 0,1, -PI/8,PI/8)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 2, clHill, 2, clPlayer, 2, clDirt, 0),
|
||||
SIZE*SIZE/90
|
||||
);
|
||||
|
||||
// create large grass tufts
|
||||
println("Creating large grass tufts...");
|
||||
group = new SimpleGroup([new SimpleObject(oGrass, 20,30, 0,1.8, -PI/8,PI/8),
|
||||
new SimpleObject(oGrassShort, 20,30, 1.2,2.5, -PI/8,PI/8)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 3, clHill, 2, clPlayer, 2, clDirt, 1, clForest, 0),
|
||||
SIZE*SIZE/900
|
||||
);
|
||||
|
||||
// create bushes
|
||||
println("Creating bushes...");
|
||||
group = new SimpleGroup([new SimpleObject(oBushSmall, 2,4, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 1, clHill, 1, clPlayer, 1, clDirt, 1),
|
||||
SIZE*SIZE/2000, 50
|
||||
);
|
||||
|
||||
// create reeds
|
||||
println("Creating reeds...");
|
||||
group = new SimpleGroup([new SimpleObject(oReeds, 5,10, 0,1.5, -PI/8,PI/8)]);
|
||||
createObjectGroups(group, 0,
|
||||
[new BorderTileClassConstraint(clWater, 3, 0), new StayInTileClassConstraint(clWater, 1)],
|
||||
10 * NUM_PLAYERS, 100
|
||||
);
|
||||
|
||||
@@ -1,449 +0,0 @@
|
||||
const SIZE = 176;
|
||||
const NUM_PLAYERS = 4;
|
||||
const WATER_WIDTH = .2;
|
||||
|
||||
// Terrain and object constants
|
||||
|
||||
tOceanDepths = "ocean_medit_depths";
|
||||
tOceanRockDeep = "ocean_medit_rock_deep";
|
||||
tOceanRockShallow = "ocean_medit_rock_shallow";
|
||||
tOceanCoral = "ocean_medit_coral";
|
||||
tBeachWet = "beach_medit_wet";
|
||||
tBeachDry = "beach_medit_dry";
|
||||
tBeachGrass = "beach_medit_grass_50";
|
||||
tBeachCliff = "cliff_medit_beach";
|
||||
tGrassDry = ["grass_mediterranean_dry_a", "grass_mediterranean_dry_b", "grass_mediterranean_dry_c"];
|
||||
tGrass = ["grass_mediterranean_green_50", "grass_mediterranean_green_flowers"];
|
||||
tGrassLush = ["grass_temperate_dry_tufts", "grass_mediterranean_green_flowers"];
|
||||
tGrassShrubs = ["grass_mediterranean_green_shrubs", "grass_mediterranean_green_flowers"];
|
||||
tGrassRock = ["grass_mediterranean_green_rock"];
|
||||
tDirt = "dirt_medit_a";
|
||||
tDirtGrass = "dirt_medit_grass_50";
|
||||
tDirtCliff = "cliff_medit_dirt";
|
||||
tGrassCliff = "cliff_medit_grass_a";
|
||||
tCliff = ["cliff_medit_face_b", "cliff_medit_face_b", "cliff_medit_foliage_a"];
|
||||
tForestFloor = "forestfloor_medit_dirt";
|
||||
|
||||
oPalm = "flora_tree_medit_fan_palm";
|
||||
oLombardyPoplar = "flora_tree_poplar_lombardy";
|
||||
oOak = "flora_tree_oak";
|
||||
oPoplar = "flora_tree_poplar";
|
||||
oCarob = "flora_tree_carob";
|
||||
oBeech = "flora_tree_euro_beech";
|
||||
oPine = "flora_tree_aleppo_pine";
|
||||
oBerryBush = "flora_bush_berry";
|
||||
oSheep = "fauna_sheep";
|
||||
oStone = "geology_stone_greek";
|
||||
oMetal = "geology_metal_greek";
|
||||
oBushLargeDry = "props/flora/bush_medit_la_dry.xml";
|
||||
oBushLarge = "props/flora/bush_medit_la.xml";
|
||||
oBushMedDry = "props/flora/bush_medit_me_dry.xml";
|
||||
oBushMed = "props/flora/bush_medit_me.xml";
|
||||
oBushSmall = "props/flora/bush_medit_sm.xml"
|
||||
oBushSmallDry = "props/flora/bush_medit_sm_dry.xml"
|
||||
oGrass = "props/flora/grass_medit_field.xml";
|
||||
oGrassDry = "props/flora/grass_soft_dry_small.xml";
|
||||
oRockLarge = "geology/stone_granite_greek_large.xml";
|
||||
oRockMed = "geology/stone_granite_greek_med.xml";
|
||||
oRockSmall = "geology/stone_granite_greek_small.xml";
|
||||
oWaterLog = "props/flora/water_log.xml";
|
||||
|
||||
tPalmForest = [tForestFloor+"|"+oPalm, tGrass];
|
||||
tPineForest = [tForestFloor+"|"+oPine, tGrass];
|
||||
tMainForest = [tForestFloor+"|"+oCarob, tForestFloor+"|"+oBeech, tGrass, tGrass];
|
||||
tPoplarForest = [tForestFloor+"|"+oLombardyPoplar, tGrass];
|
||||
|
||||
// Initialize world
|
||||
|
||||
init(SIZE, tGrass, 0);
|
||||
|
||||
// Create classes
|
||||
|
||||
clWater = createTileClass();
|
||||
clCliff = createTileClass();
|
||||
clForest = createTileClass();
|
||||
clMetal = createTileClass();
|
||||
clStone = createTileClass();
|
||||
clFood = createTileClass();
|
||||
clPlayer = createTileClass();
|
||||
clBaseResource = createTileClass();
|
||||
clSettlement = createTileClass();
|
||||
|
||||
// Place players
|
||||
|
||||
println("Placing players...");
|
||||
|
||||
playerX = new Array(NUM_PLAYERS+1);
|
||||
playerY = new Array(NUM_PLAYERS+1);
|
||||
|
||||
numLeftPlayers = Math.floor(NUM_PLAYERS/2);
|
||||
for(i=1; i<=numLeftPlayers; i++) {
|
||||
playerX[i] = 0.28 + (2*randFloat()-1)*0.01;
|
||||
playerY[i] = (0.5+i-1)/numLeftPlayers + (2*randFloat()-1)*0.01;
|
||||
}
|
||||
for(i=numLeftPlayers+1; i<=NUM_PLAYERS; i++) {
|
||||
playerX[i] = 0.72 + (2*randFloat()-1)*0.01;
|
||||
playerY[i] = (0.5+i-numLeftPlayers-1)/numLeftPlayers + (2*randFloat()-1)*0.01;
|
||||
}
|
||||
|
||||
for(i=1; i<=NUM_PLAYERS; i++) {
|
||||
// get fractional locations in tiles
|
||||
ix = round(fractionToTiles(playerX[i]));
|
||||
iy = round(fractionToTiles(playerY[i]));
|
||||
addToClass(ix, iy, clPlayer);
|
||||
|
||||
// create TC and starting units
|
||||
placeObject("special_settlement", i, ix, iy, PI*3/4);
|
||||
placeObject("hele_civil_centre", i, ix, iy, PI*3/4);
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject("hele_infantry_javelinist_b", 3,3, 5,5)],
|
||||
true, null, ix, iy
|
||||
);
|
||||
createObjectGroup(group, i);
|
||||
|
||||
// create starting berry bushes
|
||||
bbAngle = randFloat()*2*PI;
|
||||
bbDist = 9;
|
||||
bbX = round(ix + bbDist * cos(bbAngle));
|
||||
bbY = round(iy + bbDist * sin(bbAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oBerryBush, 5,5, 0,2)],
|
||||
true, clBaseResource, bbX, bbY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create starting mines
|
||||
mAngle = bbAngle;
|
||||
while(abs(mAngle - bbAngle) < PI/3) {
|
||||
mAngle = randFloat()*2*PI;
|
||||
}
|
||||
mDist = 9;
|
||||
mX = round(ix + mDist * cos(mAngle));
|
||||
mY = round(iy + mDist * sin(mAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oStone, 2,2, 0,3),
|
||||
new SimpleObject(oMetal, 2,2, 0,3)],
|
||||
true, clBaseResource, mX, mY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create starting straggler trees
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oPalm, 3,3, 7,10)],
|
||||
true, clBaseResource, ix, iy
|
||||
);
|
||||
createObjectGroup(group, 0, avoidClasses(clBaseResource,2));
|
||||
}
|
||||
|
||||
function distanceToPlayers(x, y) {
|
||||
var r = 10000;
|
||||
for(var i=1; i<=NUM_PLAYERS; i++) {
|
||||
var dx = x-playerX[i];
|
||||
var dy = y-playerY[i];
|
||||
r = min(r, dx*dx + dy*dy);
|
||||
}
|
||||
return Math.sqrt(r);
|
||||
}
|
||||
|
||||
function playerNearness(x, y) {
|
||||
var d = fractionToTiles(distanceToPlayers(x,y));
|
||||
if(d < 13) return 0;
|
||||
else if(d < 19) return (d-13)/(19-13);
|
||||
else return 1;
|
||||
}
|
||||
|
||||
function max(x, y) {
|
||||
return x > y ? x : y;
|
||||
}
|
||||
|
||||
function min(x, y) {
|
||||
return x < y ? x : y;
|
||||
}
|
||||
|
||||
// Paint elevation
|
||||
|
||||
println("Painting elevation...");
|
||||
|
||||
noise0 = new Noise2D(4 * SIZE/128);
|
||||
noise1 = new Noise2D(8 * SIZE/128);
|
||||
noise2 = new Noise2D(15 * SIZE/128);
|
||||
|
||||
noise2a = new Noise2D(20 * SIZE/128);
|
||||
noise2b = new Noise2D(35 * SIZE/128);
|
||||
|
||||
noise3 = new Noise2D(4 * SIZE/128);
|
||||
noise4 = new Noise2D(6 * SIZE/128);
|
||||
noise5 = new Noise2D(11 * SIZE/128);
|
||||
|
||||
for(ix=0; ix<=SIZE; ix++) {
|
||||
for(iy=0; iy<=SIZE; iy++) {
|
||||
x = ix / (SIZE + 1.0);
|
||||
y = iy / (SIZE + 1.0);
|
||||
pn = playerNearness(x, y);
|
||||
|
||||
h = 0;
|
||||
distToWater = 0;
|
||||
|
||||
h = 32 * (x-.5);
|
||||
|
||||
|
||||
// add the rough shape of the water
|
||||
if(x < WATER_WIDTH) {
|
||||
h = max(-16.0, -28.0*(WATER_WIDTH-x)/WATER_WIDTH);
|
||||
}
|
||||
else if(x > 1.0-WATER_WIDTH) {
|
||||
h = max(-16.0, -28.0*(x-(1.0-WATER_WIDTH))/WATER_WIDTH);
|
||||
}
|
||||
else {
|
||||
distToWater = (0.5 - WATER_WIDTH - Math.abs(x-0.5));
|
||||
u = 1 - Math.abs(x-0.5) / (0.5-WATER_WIDTH);
|
||||
h = 12*u;
|
||||
}
|
||||
|
||||
// add some base noise
|
||||
baseNoise = 16*noise0.eval(x,y) + 8*noise1.eval(x,y) + 4*noise2.eval(x,y) - (16+8+4)/2;
|
||||
if( baseNoise < 0 ) {
|
||||
baseNoise *= pn;
|
||||
baseNoise *= max(0.1, distToWater / (0.5-WATER_WIDTH));
|
||||
}
|
||||
oldH = h;
|
||||
h += baseNoise;
|
||||
|
||||
// add some higher-frequency noise on land
|
||||
if( oldH > 0 )
|
||||
{
|
||||
h += (0.4*noise2a.eval(x,y) + 0.2*noise2b.eval(x,y)) * min(oldH/10.0, 1.0);
|
||||
}
|
||||
|
||||
// create cliff noise
|
||||
if( h > -10 )
|
||||
{
|
||||
cliffNoise = (1*noise3.eval(x,y) + 0.5*noise4.eval(x,y)) / 1.5;
|
||||
if(h < 1) {
|
||||
u = 1 - .3*((h-1)/-10);
|
||||
cliffNoise *= u;
|
||||
}
|
||||
cliffNoise += .05 * distToWater / (0.5 - WATER_WIDTH);
|
||||
if(cliffNoise > .6) {
|
||||
u = 0.8 * (cliffNoise-.6);
|
||||
cliffNoise += u * noise5.eval(x,y);
|
||||
cliffNoise /= (1+u);
|
||||
}
|
||||
cliffNoise -= 0.59;
|
||||
cliffNoise *= pn;
|
||||
if(cliffNoise > 0) {
|
||||
h += 19 * min(cliffNoise, 0.045) / 0.045;
|
||||
}
|
||||
}
|
||||
|
||||
// set the height
|
||||
setHeight(ix, iy, h);
|
||||
}
|
||||
}
|
||||
|
||||
// Paint base terrain
|
||||
|
||||
println("Painting terrain...");
|
||||
|
||||
noise6 = new Noise2D(10 * SIZE/128);
|
||||
noise7 = new Noise2D(20 * SIZE/128);
|
||||
|
||||
noise8 = new Noise2D(13 * SIZE/128);
|
||||
noise9 = new Noise2D(26 * SIZE/128);
|
||||
|
||||
noise10 = new Noise2D(50 * SIZE/128);
|
||||
|
||||
for(ix=0; ix<SIZE; ix++) {
|
||||
for(iy=0; iy<SIZE; iy++) {
|
||||
x = ix / (SIZE + 1.0);
|
||||
y = iy / (SIZE + 1.0);
|
||||
pn = playerNearness(x, y);
|
||||
|
||||
// get heights of surrounding vertices
|
||||
h00 = getHeight(ix, iy);
|
||||
h01 = getHeight(ix, iy+1);
|
||||
h10 = getHeight(ix+1, iy);
|
||||
h11 = getHeight(ix+1, iy+1);
|
||||
|
||||
// find min and max height
|
||||
maxH = max(h00, h01, h10, h11);
|
||||
minH = min(h00, h01, h10, h11);
|
||||
|
||||
// figure out if we're at the top of a cliff using min adjacent height
|
||||
minAdjHeight = minH;
|
||||
if(maxH > 15) {
|
||||
for(nx=max(ix-1, 0); nx<=min(ix+2, SIZE); nx++) {
|
||||
for(ny=max(iy-1, 0); ny<=min(iy+2, SIZE); ny++) {
|
||||
minAdjHeight = min(minAdjHeight, getHeight(nx, ny));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// choose a terrain based on elevation
|
||||
t = tGrass;
|
||||
|
||||
// water
|
||||
if(maxH < -12) {
|
||||
t = tOceanDepths;
|
||||
}
|
||||
else if(maxH < -8.8) {
|
||||
t = tOceanRockDeep;
|
||||
}
|
||||
else if(maxH < -4.7) {
|
||||
t = tOceanCoral;
|
||||
}
|
||||
else if(maxH < -2.8) {
|
||||
t = tOceanRockShallow;
|
||||
}
|
||||
else if(maxH < .9 && minH < .35) {
|
||||
t = tBeachWet;
|
||||
}
|
||||
else if(maxH < 1.5 && minH < .9) {
|
||||
t = tBeachDry;
|
||||
}
|
||||
else if(maxH < 2.3 && minH < 1.3) {
|
||||
t = tBeachGrass;
|
||||
}
|
||||
|
||||
if(minH < 0) {
|
||||
addToClass(ix, iy, clWater);
|
||||
}
|
||||
|
||||
// cliffs
|
||||
if(maxH - minH > 2.9 && minH > -7) {
|
||||
t = tCliff;
|
||||
addToClass(ix, iy, clCliff);
|
||||
}
|
||||
else if((maxH - minH > 2.5 && minH > -5) || (maxH-minAdjHeight > 2.9 && minH > 0) ) {
|
||||
if(minH < -1) t = tCliff;
|
||||
else if(minH < .5) t = tBeachCliff;
|
||||
else t = [tDirtCliff, tGrassCliff, tGrassCliff, tGrassRock, tCliff];
|
||||
addToClass(ix, iy, clCliff);
|
||||
}
|
||||
|
||||
// forests
|
||||
if(maxH - minH < 1 && minH > 1) {
|
||||
forestNoise = (noise6.eval(x,y) + 0.5*noise7.eval(x,y)) / 1.5 * pn;
|
||||
forestNoise -= 0.59;
|
||||
if(forestNoise > 0) {
|
||||
if(minH > 5) {
|
||||
typeNoise = noise10.eval(x,y);
|
||||
if(typeNoise < .43 && forestNoise < .05) t = tPoplarForest;
|
||||
else if(typeNoise < .63) t = tMainForest;
|
||||
else t = tPineForest;
|
||||
addToClass(ix, iy, clForest);
|
||||
}
|
||||
else if(minH < 3) {
|
||||
t = tPalmForest;
|
||||
addToClass(ix, iy, clForest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// grass variations
|
||||
if(t==tGrass)
|
||||
{
|
||||
grassNoise = (noise8.eval(x,y) + .6*noise9.eval(x,y)) / 1.6;
|
||||
if(grassNoise < .3) {
|
||||
t = (maxH - minH > 1.2) ? tDirtCliff : tDirt;
|
||||
}
|
||||
else if(grassNoise < .34) {
|
||||
t = (maxH - minH > 1.2) ? tGrassCliff : tGrassDry;
|
||||
if(maxH - minH < .5 && randFloat() < .03) {
|
||||
placeObject(oGrassDry, 0, ix+randFloat(), iy+randFloat(), randFloat()*2*Math.PI);
|
||||
}
|
||||
}
|
||||
else if(grassNoise > .61) {
|
||||
t = (maxH - minH > 1.2) ? tGrassRock : tGrassShrubs;
|
||||
}
|
||||
else {
|
||||
if(maxH - minH < .5 && randFloat() < .05) {
|
||||
placeObject(oGrass, 0, ix+randFloat(), iy+randFloat(), randFloat()*2*Math.PI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
placeTerrain(ix, iy, t);
|
||||
}
|
||||
}
|
||||
|
||||
println("Placing object groups...");
|
||||
|
||||
// create settlements
|
||||
group = new SimpleGroup([new SimpleObject("special_settlement", 1,1, 0,0)], true, clSettlement);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 5, clForest, 4, clPlayer, 25, clCliff, 4, clSettlement, 35),
|
||||
2 * NUM_PLAYERS, 50
|
||||
);
|
||||
|
||||
// create straggler trees
|
||||
trees = [oCarob, oBeech, oLombardyPoplar, oLombardyPoplar, oPine]
|
||||
for(t in trees) {
|
||||
group = new SimpleGroup([new SimpleObject(trees[t], 1,1, 0,1)], true, clForest);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 5, clCliff, 0, clForest, 1, clSettlement, 4, clPlayer, 15),
|
||||
SIZE*SIZE/7000, 50
|
||||
);
|
||||
}
|
||||
|
||||
// create cypresses
|
||||
group = new SimpleGroup([
|
||||
new SimpleObject("flora/trees/cypress2.xml", 1,3, 0,3),
|
||||
new SimpleObject("flora/trees/cypress1.xml", 0,2, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 4, clCliff, 2, clForest, 1, clSettlement, 4, clPlayer, 15),
|
||||
SIZE*SIZE/3500, 50
|
||||
);
|
||||
|
||||
// create bushes
|
||||
group = new SimpleGroup([
|
||||
new SimpleObject(oBushSmall, 0,2, 0,2),
|
||||
new SimpleObject(oBushSmallDry, 0,2, 0,2),
|
||||
new SimpleObject(oBushMed, 0,1, 0,2),
|
||||
new SimpleObject(oBushMedDry, 0,1, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 4, clCliff, 2),
|
||||
SIZE*SIZE/1800, 50
|
||||
);
|
||||
|
||||
// create rocks
|
||||
group = new SimpleGroup([
|
||||
new SimpleObject(oRockSmall, 0,3, 0,2),
|
||||
new SimpleObject(oRockMed, 0,2, 0,2),
|
||||
new SimpleObject(oRockLarge, 0,1, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clCliff, 0),
|
||||
SIZE*SIZE/1800, 50
|
||||
);
|
||||
|
||||
// create stone
|
||||
group = new SimpleGroup([new SimpleObject(oStone, 2,3, 0,2)], true, clStone);
|
||||
createObjectGroups(group, 0,
|
||||
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 20, clStone, 15, clSettlement, 4),
|
||||
new BorderTileClassConstraint(clCliff, 0, 5)],
|
||||
3 * NUM_PLAYERS, 100
|
||||
);
|
||||
|
||||
// create metal
|
||||
group = new SimpleGroup([new SimpleObject(oMetal, 2,3, 0,2)], true, clMetal);
|
||||
createObjectGroups(group, 0,
|
||||
[avoidClasses(clWater, 0, clForest, 0, clPlayer, 20, clMetal, 15, clStone, 5, clSettlement, 4),
|
||||
new BorderTileClassConstraint(clCliff, 0, 5)],
|
||||
3 * NUM_PLAYERS, 100
|
||||
);
|
||||
|
||||
// create sheep
|
||||
group = new SimpleGroup([new SimpleObject(oSheep, 2,4, 0,2)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 5, clForest, 1, clCliff, 1, clPlayer, 20,
|
||||
clMetal, 2, clStone, 2, clFood, 8, clSettlement, 4),
|
||||
3 * NUM_PLAYERS, 100
|
||||
);
|
||||
|
||||
// create berry bushes
|
||||
group = new SimpleGroup([new SimpleObject(oBerryBush, 5,7, 0,3)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 5, clForest, 1, clCliff, 1, clPlayer, 20,
|
||||
clMetal, 2, clStone, 2, clFood, 8, clSettlement, 4),
|
||||
1.5 * NUM_PLAYERS, 100
|
||||
);
|
||||
@@ -1,280 +0,0 @@
|
||||
// constants
|
||||
|
||||
const SIZE = 208;
|
||||
const NUM_PLAYERS = 4;
|
||||
|
||||
const tSand = "desert_rough";
|
||||
const tDunes = "desert_wave";
|
||||
const tFineSand = "desert_sahara";
|
||||
const tCliff = "cliff_desert";
|
||||
const tForest = "grass_sand_75|flora/trees/palm_b.xml";
|
||||
const tGrassSand75 = "grass_sand_75";
|
||||
const tGrassSand50 = "grass_sand_50";
|
||||
const tGrassSand25 = "grass_sand_25_2";
|
||||
const tDirt = "dirt_hard";
|
||||
const tDirtCracks = "dirt_cracks";
|
||||
const tShore = "sand";
|
||||
const tWater = "water_2";
|
||||
const tWaterDeep = "water_3";
|
||||
|
||||
const oTree = "flora/trees/palm_b.xml";
|
||||
const oBerryBush = "flora_bush_berry";
|
||||
const oBush = "props/flora/bush_dry_a.xml";
|
||||
const oSheep = "fauna_sheep";
|
||||
const oDeer = "fauna_deer";
|
||||
const oMine = "geology_stone_light";
|
||||
const oDecorativeRock = "geology/gray1.xml";
|
||||
|
||||
// some utility functions to save typing
|
||||
|
||||
function paintClass(cl) {
|
||||
return new TileClassPainter(cl);
|
||||
}
|
||||
|
||||
function avoidClasses(/*class1, dist1, class2, dist2, etc*/) {
|
||||
var ar = new Array(arguments.length/2);
|
||||
for(var i=0; i<arguments.length/2; i++) {
|
||||
ar[i] = new AvoidTileClassConstraint(arguments[2*i], arguments[2*i+1]);
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
|
||||
// initialize map
|
||||
|
||||
println("Initializing map...");
|
||||
init(SIZE, tSand, 10);
|
||||
|
||||
// create tile classes
|
||||
|
||||
clPlayer = createTileClass();
|
||||
clHill1 = createTileClass();
|
||||
clHill2 = createTileClass();
|
||||
clHill3 = createTileClass();
|
||||
clForest = createTileClass();
|
||||
clWater = createTileClass();
|
||||
clPatch = createTileClass();
|
||||
clRock = createTileClass();
|
||||
clFood = createTileClass();
|
||||
clBaseResource = createTileClass();
|
||||
|
||||
// place players
|
||||
|
||||
playerX = new Array(NUM_PLAYERS);
|
||||
playerY = new Array(NUM_PLAYERS);
|
||||
playerAngle = new Array(NUM_PLAYERS);
|
||||
|
||||
startAngle = randFloat() * 2 * PI;
|
||||
for(i=0; i<NUM_PLAYERS; i++) {
|
||||
playerAngle[i] = startAngle + i*2*PI/NUM_PLAYERS;
|
||||
playerX[i] = 0.5 + 0.39*cos(playerAngle[i]);
|
||||
playerY[i] = 0.5 + 0.39*sin(playerAngle[i]);
|
||||
}
|
||||
|
||||
for(i=0; i<NUM_PLAYERS; i++) {
|
||||
println("Creating base for player " + i + "...");
|
||||
|
||||
// some constants
|
||||
radius = 20;
|
||||
cliffRadius = 2;
|
||||
elevation = 30;
|
||||
|
||||
// get the x and y in tiles
|
||||
fx = fractionToTiles(playerX[i]);
|
||||
fy = fractionToTiles(playerY[i]);
|
||||
ix = round(fx);
|
||||
iy = round(fy);
|
||||
|
||||
// calculate size based on the radius
|
||||
size = PI * radius * radius;
|
||||
|
||||
// create the hill
|
||||
placer = new ClumpPlacer(size, 0.9, 0.5, 0, ix, iy);
|
||||
createArea(placer, paintClass(clPlayer), null);
|
||||
|
||||
// create the central road patch
|
||||
placer = new ClumpPlacer(PI*2*2, 0.6, 0.3, 0.5, ix, iy);
|
||||
painter = new TerrainPainter(tDirt);
|
||||
createArea(placer, painter, null);
|
||||
|
||||
// create the TC and the villies
|
||||
group = new SimpleGroup(
|
||||
[ // elements (type, count, distance)
|
||||
new SimpleObject("hele_civil_centre", 1,1, 0,0),
|
||||
new SimpleObject("hele_infantry_spearman_b", 3,3, 5,5)
|
||||
],
|
||||
true, null, ix, iy
|
||||
);
|
||||
createObjectGroup(group, i);
|
||||
|
||||
// create berry bushes
|
||||
bbAngle = randFloat()*2*PI;
|
||||
bbDist = 10;
|
||||
bbX = round(fx + bbDist * cos(bbAngle));
|
||||
bbY = round(fy + bbDist * sin(bbAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oSheep, 5,5, 0,2)],
|
||||
true, clBaseResource, bbX, bbY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create mines
|
||||
mAngle = bbAngle;
|
||||
while(abs(mAngle - bbAngle) < PI/3) {
|
||||
mAngle = randFloat()*2*PI;
|
||||
}
|
||||
mDist = 12;
|
||||
mX = round(fx + mDist * cos(mAngle));
|
||||
mY = round(fy + mDist * sin(mAngle));
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oMine, 3,3, 0,2)],
|
||||
true, clBaseResource, mX, mY
|
||||
);
|
||||
createObjectGroup(group, 0);
|
||||
|
||||
// create starting straggler trees
|
||||
group = new SimpleGroup(
|
||||
[new SimpleObject(oTree, 2,2, 6,12)],
|
||||
true, null, ix, iy
|
||||
);
|
||||
createObjectGroup(group, 0, avoidClasses(clBaseResource,1));
|
||||
}
|
||||
|
||||
// create patches
|
||||
println("Creating sand patches...");
|
||||
placer = new ClumpPlacer(30, 0.2, 0.1, 0);
|
||||
painter = new LayeredPainter([1], [[tSand, tFineSand], tFineSand]);
|
||||
createAreas(placer, [painter, paintClass(clPatch)],
|
||||
avoidClasses(clPatch, 5),
|
||||
(SIZE*SIZE)/600
|
||||
);
|
||||
|
||||
println("Creating dirt patches...");
|
||||
placer = new ClumpPlacer(10, 0.2, 0.1, 0);
|
||||
painter = new TerrainPainter([tSand, tDirt]);
|
||||
createAreas(placer, [painter, paintClass(clPatch)],
|
||||
avoidClasses(clPatch, 5),
|
||||
(SIZE*SIZE)/600
|
||||
);
|
||||
|
||||
// create the oasis
|
||||
println("Creating water...");
|
||||
placer = new ClumpPlacer(1200, 0.6, 0.1, 0, SIZE/2, SIZE/2);
|
||||
painter = new LayeredPainter([6,1], [[tSand, tForest], tShore, tWaterDeep]);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, -10, 5);
|
||||
createArea(placer, [painter, elevationPainter, paintClass(clForest)], null);
|
||||
|
||||
// create hills
|
||||
println("Creating level 1 hills...");
|
||||
placer = new ClumpPlacer(150, 0.25, 0.1, 0.3);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[1], // widths
|
||||
[tCliff, tSand] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, 16, 1);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clHill1)],
|
||||
avoidClasses(clForest, 2, clPlayer, 0, clHill1, 16),
|
||||
(SIZE*SIZE)/3800, 100
|
||||
);
|
||||
|
||||
println("Creating small level 1 hills...");
|
||||
placer = new ClumpPlacer(60, 0.25, 0.1, 0.3);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[1], // widths
|
||||
[tCliff, tSand] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, 16, 1);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clHill1)],
|
||||
avoidClasses(clForest, 2, clPlayer, 0, clHill1, 3),
|
||||
(SIZE*SIZE)/2800, 100
|
||||
);
|
||||
|
||||
println("Creating level 2 hills...");
|
||||
placer = new ClumpPlacer(60, 0.2, 0.1, 0.9);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[1], // widths
|
||||
[tCliff, tSand] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, 16, 1);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clHill2)],
|
||||
[avoidClasses(clHill2, 1), new StayInTileClassConstraint(clHill1, 0)],
|
||||
(SIZE*SIZE)/2800, 200
|
||||
);
|
||||
|
||||
println("Creating level 3 hills...");
|
||||
placer = new ClumpPlacer(25, 0.2, 0.1, 0.9);
|
||||
terrainPainter = new LayeredPainter(
|
||||
[1], // widths
|
||||
[tCliff, tSand] // terrains
|
||||
);
|
||||
elevationPainter = new SmoothElevationPainter(ELEVATION_MODIFY, 16, 1);
|
||||
createAreas(placer, [terrainPainter, elevationPainter, paintClass(clHill3)],
|
||||
[avoidClasses(clHill3, 1), new StayInTileClassConstraint(clHill2, 0)],
|
||||
(SIZE*SIZE)/9000, 300
|
||||
);
|
||||
|
||||
// create forests
|
||||
println("Creating forests...");
|
||||
placer = new ClumpPlacer(25, 0.15, 0.1, 0.3);
|
||||
painter = new TerrainPainter([tSand, tForest]);
|
||||
createAreas(placer, [painter, paintClass(clForest)],
|
||||
avoidClasses(clWater, 0, clPlayer, 1, clForest, 20, clHill1, 0),
|
||||
(SIZE*SIZE)/4000, 50
|
||||
);
|
||||
|
||||
// create mines
|
||||
println("Creating mines...");
|
||||
group = new SimpleGroup([new SimpleObject(oMine, 4,6, 0,2)], true, clRock);
|
||||
createObjectGroups(group, 0,
|
||||
[avoidClasses(clWater, 2, clForest, 2, clPlayer, 0, clRock, 13),
|
||||
new BorderTileClassConstraint(clHill1, 0, 4)],
|
||||
(SIZE*SIZE)/4000, 100
|
||||
);
|
||||
|
||||
// create decorative rocks for hills
|
||||
println("Creating decorative rocks...");
|
||||
group = new SimpleGroup([new SimpleObject(oDecorativeRock, 1,1, 0,0)], true);
|
||||
createObjectGroups(group, 0,
|
||||
new BorderTileClassConstraint(clHill1, 0, 3),
|
||||
(SIZE*SIZE)/2000, 100
|
||||
);
|
||||
|
||||
// create deer
|
||||
println("Creating deer...");
|
||||
group = new SimpleGroup([new SimpleObject(oDeer, 5,7, 0,4)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill1, 0, clFood, 25),
|
||||
(SIZE*SIZE)/5000, 50
|
||||
);
|
||||
|
||||
// create sheep
|
||||
println("Creating sheep...");
|
||||
group = new SimpleGroup([new SimpleObject(oSheep, 1,3, 0,2)], true, clFood);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clPlayer, 0, clHill1, 0, clFood, 15),
|
||||
(SIZE*SIZE)/5000, 50
|
||||
);
|
||||
|
||||
// create straggler trees
|
||||
println("Creating straggler trees...");
|
||||
group = new SimpleGroup([new SimpleObject(oTree, 1,1, 0,0)], true);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 0, clForest, 0, clHill1, 0, clPlayer, 0),
|
||||
SIZE*SIZE/1500
|
||||
);
|
||||
|
||||
|
||||
// create bushes
|
||||
println("Creating bushes...");
|
||||
group = new SimpleGroup([new SimpleObject(oBush, 2,3, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 3, clHill1, 0, clPlayer, 0, clForest, 0),
|
||||
SIZE*SIZE/1000
|
||||
);
|
||||
|
||||
// create bushes
|
||||
println("Creating more decorative rocks...");
|
||||
group = new SimpleGroup([new SimpleObject(oDecorativeRock, 1,2, 0,2)]);
|
||||
createObjectGroups(group, 0,
|
||||
avoidClasses(clWater, 3, clHill1, 0, clPlayer, 0, clForest, 0),
|
||||
SIZE*SIZE/1000
|
||||
);
|
||||
@@ -1,137 +0,0 @@
|
||||
const SIZE = 160;
|
||||
|
||||
const sand = "beach_medit_dry";
|
||||
const grass1 = "grass_temperate_a";
|
||||
const grass2 = "grass_mediterranean_green_flowers";
|
||||
const forestFloor = "forrestfloor";
|
||||
const dirt1 = "grass_sand_75";
|
||||
const dirt2 = "grass_sand_50";
|
||||
const dirt3 = "dirt_brown_e";
|
||||
const cliffBase = "cliff base a";
|
||||
const cliffBeach = "beech_cliff_a_75";
|
||||
const cliff = "cliff_face3";
|
||||
|
||||
const oTree = "flora_tree_oak";
|
||||
const oGrass = "props/flora/grass_soft_small.xml"
|
||||
const oMine = "geology_stone_light";
|
||||
|
||||
// Initialize
|
||||
|
||||
init(SIZE, grass1, 0);
|
||||
|
||||
// Create classes
|
||||
|
||||
clImpassable = createTileClass();
|
||||
clRock = createTileClass();
|
||||
|
||||
// Paint elevation
|
||||
|
||||
noise0 = new Noise2D(4 * SIZE/128.0);
|
||||
noise1 = new Noise2D(8 * SIZE/128.0);
|
||||
noise2 = new Noise2D(11 * SIZE/128.0);
|
||||
noise3 = new Noise2D(30 * SIZE/128.0);
|
||||
noise4 = new Noise2D(60 * SIZE/128.0);
|
||||
|
||||
for(ix=0; ix<SIZE+1; ix++) {
|
||||
for(iy=0; iy<SIZE+1; iy++) {
|
||||
x = ix / (SIZE + 1.0);
|
||||
y = iy / (SIZE + 1.0);
|
||||
|
||||
// Calculate base noise
|
||||
n = (noise0.eval(x, y) + 0.4 * noise1.eval(x, y)) / 1.4;
|
||||
|
||||
T = .4; // Water cutoff
|
||||
|
||||
if(n < T) {
|
||||
// Tile is underwater - just scale the height down a bit
|
||||
h = Math.max(-50 * (T-n)/T, -8);
|
||||
}
|
||||
else {
|
||||
// Tile is above water - add some land noise depending on how far we are from the shoreline
|
||||
u = 27*noise1.eval(x, y) + 14*noise2.eval(x,y) + 9 * noise3.eval(x,y) - 14;
|
||||
h = 8*(n-T) + Math.max(0, lerp(0, u, Math.min(.1, n-T)*10));
|
||||
h += 0.4*noise4.eval(x, y);
|
||||
}
|
||||
|
||||
setHeight(ix, iy, h);
|
||||
}
|
||||
}
|
||||
|
||||
// Paint terrains
|
||||
|
||||
for(ix=0; ix<SIZE; ix++) {
|
||||
for(iy=0; iy<SIZE; iy++) {
|
||||
h00 = getHeight(ix, iy);
|
||||
h01 = getHeight(ix, iy+1);
|
||||
h10 = getHeight(ix+1, iy);
|
||||
h11 = getHeight(ix+1, iy+1);
|
||||
maxH = Math.max(h00, h01, h10, h11);
|
||||
minH = Math.min(h00, h01, h10, h11);
|
||||
if(maxH <= 0) {
|
||||
setTexture(ix, iy, sand);
|
||||
addToClass(ix, iy, clImpassable);
|
||||
}
|
||||
else if(maxH - minH > 3.2) {
|
||||
setTexture(ix, iy, cliff);
|
||||
addToClass(ix, iy, clImpassable);
|
||||
}
|
||||
else if(maxH - minH > 2.7) {
|
||||
setTexture(ix, iy, cliffBase);
|
||||
addToClass(ix, iy, clImpassable);
|
||||
}
|
||||
else if(minH <= 0) {
|
||||
setTexture(ix, iy, sand);
|
||||
addToClass(ix, iy, clImpassable);
|
||||
}
|
||||
else {
|
||||
setTexture(ix, iy, grass1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Paint forest and dirt
|
||||
|
||||
forestNoise1 = new Noise2D(20 * SIZE/128.0);
|
||||
forestNoise2 = new Noise2D(40 * SIZE/128.0);
|
||||
dirtNoise = new Noise2D(80 * SIZE/128.0);
|
||||
|
||||
for(ix=0; ix<SIZE; ix++) {
|
||||
for(iy=0; iy<SIZE; iy++) {
|
||||
x = ix / (SIZE + 1.0);
|
||||
y = iy / (SIZE + 1.0);
|
||||
h00 = getHeight(ix, iy);
|
||||
h01 = getHeight(ix, iy+1);
|
||||
h10 = getHeight(ix+1, iy);
|
||||
h11 = getHeight(ix+1, iy+1);
|
||||
maxH = Math.max(h00, h01, h10, h11);
|
||||
minH = Math.min(h00, h01, h10, h11);
|
||||
if(maxH - minH < 1.7 && minH > 0) {
|
||||
fn = (forestNoise1.eval(x,y) + .5*forestNoise1.eval(x,y)) / 1.5;
|
||||
|
||||
if(minH > .5 && fn < .38 && dirtNoise.eval(x,y) > .55) {
|
||||
if(dirtNoise.eval(x,y) > .72) {
|
||||
setTexture(ix, iy, dirt2);
|
||||
}
|
||||
else {
|
||||
setTexture(ix, iy, dirt1);
|
||||
}
|
||||
}
|
||||
|
||||
if(fn > .6 && randFloat() < (.3 + .7 * Math.min(fn-.6, .1) / .1) ) {
|
||||
placeObject(oTree, 0, ix+.4+.2*randFloat(), iy+.4+.2*randFloat(), randFloat()*2*Math.PI);
|
||||
addToClass(ix, iy, clImpassable);
|
||||
if(randFloat() < .7) {
|
||||
setTexture(ix, iy, forestFloor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println("Creating mines...");
|
||||
group = new SimpleGroup([new SimpleObject(oMine, 3,4, 0,2)], true, clRock);
|
||||
createObjectGroups(group, 0,
|
||||
new AvoidTileClassConstraint(clImpassable, 2, clRock, 13),
|
||||
12, 100
|
||||
);
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
//TODO: Move to some library file?
|
||||
|
||||
|
||||
initFromScenario("mediterannean", LOAD_ALL);
|
||||
|
||||
@@ -1,272 +0,0 @@
|
||||
// Object type constants
|
||||
|
||||
const
|
||||
TYPE_RECT_PLACER = 1,
|
||||
TYPE_TERRAIN_PAINTER = 2,
|
||||
TYPE_NULL_CONSTRAINT = 3,
|
||||
TYPE_LAYERED_PAINTER = 4,
|
||||
TYPE_AVOID_AREA_CONSTRAINT = 5,
|
||||
TYPE_CLUMP_PLACER = 6,
|
||||
TYPE_AVOID_TEXTURE_CONSTRAINT = 7,
|
||||
TYPE_ELEVATION_PAINTER = 8,
|
||||
TYPE_SMOOTH_ELEVATION_PAINTER = 9,
|
||||
TYPE_SIMPLE_GROUP = 10,
|
||||
TYPE_AVOID_TILE_CLASS_CONSTRAINT = 11,
|
||||
TYPE_TILE_CLASS_PAINTER = 12,
|
||||
TYPE_STAY_IN_TILE_CLASS_CONSTRAINT = 13,
|
||||
TYPE_BORDER_TILE_CLASS_CONSTRAINT = 14;
|
||||
|
||||
// SmoothElevationPainter constants
|
||||
|
||||
const ELEVATION_SET = 0;
|
||||
const ELEVATION_MODIFY = 1;
|
||||
|
||||
// PI
|
||||
|
||||
const PI = Math.PI;
|
||||
|
||||
// initFromScenario constants
|
||||
|
||||
const LOAD_NOTHING = 0;
|
||||
const LOAD_TERRAIN = 1;
|
||||
const LOAD_INTERACTIVES = 2;
|
||||
const LOAD_NON_INTERACTIVES = 4;
|
||||
const LOAD_ALL = LOAD_TERRAIN | LOAD_INTERACTIVES | LOAD_NON_INTERACTIVES;
|
||||
|
||||
// Utility functions
|
||||
|
||||
function fractionToTiles(f) {
|
||||
return getMapSize() * f;
|
||||
}
|
||||
|
||||
function tilesToFraction(t) {
|
||||
return t / getMapSize();
|
||||
}
|
||||
|
||||
function fractionToSize(f) {
|
||||
return getMapSize() * getMapSize() * f;
|
||||
}
|
||||
|
||||
function sizeToFraction(s) {
|
||||
return s / getMapSize() / getMapSize();
|
||||
}
|
||||
|
||||
function cos(x) {
|
||||
return Math.cos(x);
|
||||
}
|
||||
|
||||
function sin(x) {
|
||||
return Math.sin(x);
|
||||
}
|
||||
|
||||
function tan(x) {
|
||||
return Math.tan(x);
|
||||
}
|
||||
|
||||
function abs(x) {
|
||||
return Math.abs(x);
|
||||
}
|
||||
|
||||
function round(x) {
|
||||
return Math.round(x);
|
||||
}
|
||||
|
||||
function lerp(a, b, t) {
|
||||
return a + (b-a) * t;
|
||||
}
|
||||
|
||||
function println(x) {
|
||||
print(x);
|
||||
print("\n");
|
||||
}
|
||||
|
||||
function argsToArray(x) {
|
||||
if(x.length!=1) {
|
||||
var ret = new Array();
|
||||
for(var i=0; i<x.length; i++) {
|
||||
ret[i] = x[i];
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return x[0];
|
||||
}
|
||||
}
|
||||
|
||||
function chooseRand() {
|
||||
if(arguments.length==0) {
|
||||
error("chooseRand: requires at least 1 argument");
|
||||
}
|
||||
var ar = argsToArray(arguments);
|
||||
return ar[randInt(ar.length)];
|
||||
}
|
||||
|
||||
function createAreas(centeredPlacer, painter, constraint, num, retryFactor) {
|
||||
if(retryFactor == undefined) {
|
||||
retryFactor = 10;
|
||||
}
|
||||
|
||||
var maxFail = num * retryFactor;
|
||||
var good = 0;
|
||||
var bad = 0;
|
||||
var ret = new Array();
|
||||
while(good < num && bad <= maxFail) {
|
||||
centeredPlacer.x = randInt(SIZE);
|
||||
centeredPlacer.y = randInt(SIZE);
|
||||
var r = createArea(centeredPlacer, painter, constraint);
|
||||
if(r) {
|
||||
good++;
|
||||
ret[ret.length] = r;
|
||||
}
|
||||
else {
|
||||
bad++;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
function createObjectGroups(placer, player, constraint, num, retryFactor) {
|
||||
if(retryFactor == undefined) {
|
||||
retryFactor = 10;
|
||||
}
|
||||
|
||||
var maxFail = num * retryFactor;
|
||||
var good = 0;
|
||||
var bad = 0;
|
||||
while(good < num && bad <= maxFail) {
|
||||
placer.x = randInt(SIZE);
|
||||
placer.y = randInt(SIZE);
|
||||
var r = createObjectGroup(placer, player, constraint);
|
||||
if(r) {
|
||||
good++;
|
||||
}
|
||||
else {
|
||||
bad++;
|
||||
}
|
||||
}
|
||||
return good;
|
||||
}
|
||||
|
||||
// Area placers
|
||||
|
||||
function RectPlacer(x1, y1, x2, y2) {
|
||||
this.TYPE = TYPE_RECT_PLACER;
|
||||
this.x1 = x1;
|
||||
this.y1 = y1;
|
||||
this.x2 = x2;
|
||||
this.y2 = y2;
|
||||
}
|
||||
|
||||
function TerrainPainter(terrain) {
|
||||
this.TYPE = TYPE_TERRAIN_PAINTER;
|
||||
this.terrain = terrain;
|
||||
}
|
||||
|
||||
function ClumpPlacer(size, coherence, smoothness, failFraction, x, y) {
|
||||
this.TYPE = TYPE_CLUMP_PLACER;
|
||||
this.size = size;
|
||||
this.coherence = coherence;
|
||||
this.smoothness = smoothness;
|
||||
this.failFraction = failFraction!=undefined ? failFraction : 0;
|
||||
this.x = x!=undefined ? x : -1;
|
||||
this.y = y!=undefined ? y : -1;
|
||||
}
|
||||
|
||||
// Area painters
|
||||
|
||||
function LayeredPainter(widths, terrains) {
|
||||
this.TYPE = TYPE_LAYERED_PAINTER;
|
||||
this.widths = widths;
|
||||
this.terrains = terrains;
|
||||
}
|
||||
|
||||
function ElevationPainter(elevation) {
|
||||
this.TYPE = TYPE_ELEVATION_PAINTER;
|
||||
this.elevation = elevation;
|
||||
}
|
||||
|
||||
function TileClassPainter(tileClass) {
|
||||
this.TYPE = TYPE_TILE_CLASS_PAINTER;
|
||||
this.tileClass = tileClass;
|
||||
}
|
||||
|
||||
function SmoothElevationPainter(type, elevation, blendRadius) {
|
||||
this.TYPE = TYPE_SMOOTH_ELEVATION_PAINTER;
|
||||
this.type = type;
|
||||
this.elevation = elevation;
|
||||
this.blendRadius = blendRadius;
|
||||
}
|
||||
|
||||
// Constraints
|
||||
|
||||
function NullConstraint() {
|
||||
this.TYPE = TYPE_NULL_CONSTRAINT;
|
||||
}
|
||||
|
||||
function AvoidAreaConstraint(area) {
|
||||
this.TYPE = TYPE_AVOID_AREA_CONSTRAINT;
|
||||
this.area = area;
|
||||
}
|
||||
|
||||
function AvoidTextureConstraint(texture) {
|
||||
this.TYPE = TYPE_AVOID_TEXTURE_CONSTRAINT;
|
||||
this.texture = texture;
|
||||
}
|
||||
|
||||
function AvoidTileClassConstraint(tileClass, distance) {
|
||||
this.TYPE = TYPE_AVOID_TILE_CLASS_CONSTRAINT;
|
||||
this.tileClass = tileClass;
|
||||
this.distance = distance;
|
||||
}
|
||||
|
||||
function StayInTileClassConstraint(tileClass, distance) {
|
||||
this.TYPE = TYPE_STAY_IN_TILE_CLASS_CONSTRAINT;
|
||||
this.tileClass = tileClass;
|
||||
this.distance = distance;
|
||||
}
|
||||
|
||||
function BorderTileClassConstraint(tileClass, distanceInside, distanceOutside) {
|
||||
this.TYPE = TYPE_BORDER_TILE_CLASS_CONSTRAINT;
|
||||
this.tileClass = tileClass;
|
||||
this.distanceInside = distanceInside;
|
||||
this.distanceOutside = distanceOutside;
|
||||
}
|
||||
|
||||
// Object groups
|
||||
|
||||
function SimpleObject(type, minCount, maxCount, minDistance, maxDistance,
|
||||
minAngle, maxAngle) {
|
||||
this.type = type;
|
||||
this.minCount = minCount;
|
||||
this.maxCount = maxCount;
|
||||
this.minDistance = minDistance;
|
||||
this.maxDistance = maxDistance;
|
||||
this.minAngle = minAngle!=undefined ? minAngle : 0;
|
||||
this.maxAngle = maxAngle!=undefined ? maxAngle : 2*PI;
|
||||
}
|
||||
|
||||
function SimpleGroup(elements, avoidSelf, tileClass, x, y) {
|
||||
this.TYPE = TYPE_SIMPLE_GROUP;
|
||||
this.elements = elements;
|
||||
this.avoidSelf = avoidSelf!=undefined ? avoidSelf : false;
|
||||
this.tileClass = tileClass!=undefined ? tileClass : null;
|
||||
this.x = x!=undefined ? x : -1;
|
||||
this.y = x!=undefined ? y : -1;
|
||||
}
|
||||
|
||||
// Utility functions for classes
|
||||
|
||||
// Create a painter for the given class
|
||||
function paintClass(cl) {
|
||||
return new TileClassPainter(cl);
|
||||
}
|
||||
|
||||
// Create an avoid constraint for the given classes by the given distances
|
||||
function avoidClasses(/*class1, dist1, class2, dist2, etc*/) {
|
||||
var ar = new Array(arguments.length/2);
|
||||
for(var i=0; i<arguments.length/2; i++) {
|
||||
ar[i] = new AvoidTileClassConstraint(arguments[2*i], arguments[2*i+1]);
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user