Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
19414a4aa7 | ||
|
|
dcb1af6e7c | ||
|
|
d0a3a22223 | ||
|
|
e27558ce9f | ||
|
|
9d7bd1ceed | ||
|
|
a398c53e35 | ||
|
|
c866fec4e9 | ||
|
|
3e588ec585 | ||
|
|
5b8755f20b | ||
|
|
d12dc215c8 | ||
|
|
6e49351d18 | ||
|
|
14002151b8 | ||
|
|
6e544572d2 | ||
|
|
6eb785d57c | ||
|
|
574536f419 | ||
|
|
b070cdd9e1 | ||
|
|
8ff0278810 | ||
|
|
aecfb849d5 | ||
|
|
420c661bad | ||
|
|
f0a303d12f | ||
|
|
e879235d94 | ||
|
|
8a6c410b18 | ||
|
|
e9562164eb | ||
|
|
a94c04d6f2 | ||
|
|
6bd2228fb0 | ||
|
|
c28f5d30cf | ||
|
|
392af625f9 | ||
|
|
efee3092fa | ||
|
|
b11912dc40 | ||
|
|
f60d358084 | ||
|
|
c5a3e0032a | ||
|
|
ee9c1a7bde | ||
|
|
42b9887a58 | ||
|
|
326a43f83d | ||
|
|
7240df0fef | ||
|
|
89ab6341ac | ||
|
|
26ab0a65f4 | ||
|
|
44c4c0b13f | ||
|
|
a9905cccb4 | ||
|
|
cc39255429 |
@@ -6,4 +6,23 @@ SAVE/PerfOptions.ini
|
||||
SAVE/WindowSettings.ini
|
||||
SAVE/Accts/SinglePlayer/Restart.fl
|
||||
SAVE/Accts/SinglePlayer/AutoSave.fl
|
||||
SAVE/Accts/SinglePlayer/nostory.fl
|
||||
SAVE/Accts/SinglePlayer/nostory.fl
|
||||
|
||||
# crash dumps, logs, traces, debug symbols, build leftovers
|
||||
*.dmp
|
||||
*.log
|
||||
*.trace
|
||||
*.pdb
|
||||
*.obj
|
||||
*.bak
|
||||
EXE/codec-samples.jsonl
|
||||
|
||||
# the server is a private project, nothing of it goes into the mod
|
||||
EXE/rem-server*
|
||||
EXE/flserver_rebuilt.*
|
||||
EXE/flbot.exe
|
||||
EXE/LargeID.dat
|
||||
EXE/REM/ServerModule/
|
||||
EXE/REM/npc_profiles.ini
|
||||
EXE/REM/rem-server-*.txt
|
||||
flserver-reconstruction/
|
||||
|
||||
@@ -5399,3 +5399,19 @@ HP_child = HpConnect
|
||||
parent_impulse = 0.010000
|
||||
child_impulse = 0.010000
|
||||
debris_type = debris_vanish
|
||||
|
||||
|
||||
|
||||
; neb02_outside
|
||||
|
||||
[CargoPod]
|
||||
nickname = neb02_outside
|
||||
LODranges = 0, 2000
|
||||
DA_archetype = solar\REM_MISC\neb02_outside.3db
|
||||
material_library = solar\REM_MISC\neb02_outside.3db
|
||||
hit_pts = 1e36
|
||||
mass = 1e10
|
||||
HP_child = HpConnect
|
||||
parent_impulse = 0.010000
|
||||
child_impulse = 0.010000
|
||||
debris_type = debris_vanish
|
||||
@@ -4592,7 +4592,7 @@ volume = 0.000000
|
||||
regeneration_rate = 0
|
||||
max_capacity = 0
|
||||
toughness = 0
|
||||
hp_type = hp_elite_shield_special_1
|
||||
hp_type = hp_rem_module01
|
||||
offline_rebuild_time = 0
|
||||
offline_threshold = 0.000000
|
||||
constant_power_draw = 0
|
||||
@@ -4626,7 +4626,7 @@ volume = 0.000000
|
||||
regeneration_rate = 0
|
||||
max_capacity = 0
|
||||
toughness = 0
|
||||
hp_type = hp_elite_shield_special_1
|
||||
hp_type = hp_rem_module01
|
||||
offline_rebuild_time = 0
|
||||
offline_threshold = 0.000000
|
||||
constant_power_draw = 0
|
||||
@@ -4912,4 +4912,40 @@ shield_hit_effects = 500, gf_li_shield03
|
||||
separation_explosion = sever_debris
|
||||
LODranges = 0, 1500
|
||||
lootable = true
|
||||
phantom_physics = true
|
||||
|
||||
|
||||
; Sublight-Modul
|
||||
[ShieldGenerator]
|
||||
;[JumpEngine]
|
||||
nickname = jump_drive
|
||||
ids_name = 265001
|
||||
ids_info = 265002
|
||||
DA_archetype = equipment\models\st\li_refractor_shield.3db
|
||||
material_library = equipment\models\li_equip.mat
|
||||
HP_child = HpConnect
|
||||
hit_pts = 8000
|
||||
mass = 0
|
||||
explosion_resistance = 0.300000
|
||||
debris_type = debris_normal
|
||||
parent_impulse = 20
|
||||
child_impulse = 80
|
||||
volume = 0.000000
|
||||
regeneration_rate = 0
|
||||
max_capacity = 0
|
||||
toughness = 0
|
||||
hp_type = hp_rem_module02
|
||||
offline_rebuild_time = 0
|
||||
offline_threshold = 0.000000
|
||||
constant_power_draw = 0
|
||||
rebuild_power_draw = 0
|
||||
shield_type = S_Graviton01
|
||||
shield_collapse_sound = shield_offline
|
||||
shield_rebuilt_sound = shield_rebuilt
|
||||
shield_hit_effects = 0, gf_li_shield01
|
||||
shield_hit_effects = 100, gf_li_shield02
|
||||
shield_hit_effects = 500, gf_li_shield03
|
||||
separation_explosion = sever_debris
|
||||
LODranges = 0, 1500
|
||||
lootable = true
|
||||
phantom_physics = true
|
||||
@@ -1863,4 +1863,17 @@ combinable = false
|
||||
ids_name = 263960
|
||||
ids_info = 263960
|
||||
shop_archetype = equipment\models\st\ku_thruster.3db
|
||||
material_library = equipment\models\ku_equip.mat
|
||||
|
||||
; Sublight-Modul
|
||||
[Good]
|
||||
nickname = jump_drive
|
||||
equipment = jump_drive
|
||||
category = equipment
|
||||
price = 75000
|
||||
item_icon = equipment\models\commodities\nn_icons\EQUIPICON_thruster.3db
|
||||
combinable = false
|
||||
ids_name = 265001
|
||||
ids_info = 265002
|
||||
shop_archetype = equipment\models\st\ku_thruster.3db
|
||||
material_library = equipment\models\ku_equip.mat
|
||||
@@ -4433,7 +4433,56 @@ turn_rate = 90
|
||||
lootable = true
|
||||
LODranges = 0, 999999
|
||||
|
||||
; Acc Tizona del Cid
|
||||
; Steady Tizona del Cid
|
||||
|
||||
[Munition]
|
||||
nickname = fc_c_gun02_mark03_650_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 40.8
|
||||
energy_damage = 1222.5
|
||||
weapon_type = W_Pulse01
|
||||
one_shot_sound = fire_pulse5
|
||||
munition_hit_effect = pi_pulse_03_impact
|
||||
const_effect = pi_pulse_03_proj
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
|
||||
[Gun]
|
||||
nickname = fc_c_gun02_mark03_650
|
||||
ids_name = 520002
|
||||
ids_info = 264213
|
||||
DA_archetype = equipment\models\weapons\ge_shredder_shotgun.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
HP_child = HPConnect
|
||||
hit_pts = 6752
|
||||
explosion_resistance = 1
|
||||
debris_type = debris_normal
|
||||
parent_impulse = 20
|
||||
child_impulse = 80
|
||||
volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_9
|
||||
damage_per_fire = 0
|
||||
power_usage = 97.8
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 1.6
|
||||
flash_particle_name = pi_laser_03_flash
|
||||
flash_radius = 15
|
||||
light_anim = l_gun01_flash
|
||||
projectile_archetype = fc_c_gun02_mark03_650_ammo
|
||||
separation_explosion = sever_debris
|
||||
auto_turret = false
|
||||
turn_rate = 90
|
||||
lootable = true
|
||||
LODranges = 0, 999999
|
||||
|
||||
; Swift Tizona del Cid
|
||||
|
||||
[Munition]
|
||||
nickname = fc_c_gun02_mark03_700_ammo
|
||||
@@ -10264,7 +10313,7 @@ hp_gun_type = hp_gun_special_8
|
||||
damage_per_fire = 0
|
||||
power_usage = 106.25
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 550
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 12.7
|
||||
flash_particle_name = pi_plasma_03_flash
|
||||
@@ -16639,7 +16688,7 @@ weapon_type = W_Plasma01
|
||||
one_shot_sound = fire_plasma4
|
||||
munition_hit_effect = rh_plasma_03_impact
|
||||
const_effect = rh_plasma_03_proj
|
||||
lifetime = 1.2
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -16662,7 +16711,7 @@ hp_gun_type = hp_gun_special_8
|
||||
damage_per_fire = 0
|
||||
power_usage = 218.5
|
||||
refire_delay = 0.5
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 12.7
|
||||
flash_particle_name = rh_plasma_03_flash
|
||||
@@ -16688,7 +16737,7 @@ weapon_type = W_Plasma01
|
||||
one_shot_sound = fire_plasma5
|
||||
munition_hit_effect = rh_plasma_04_impact
|
||||
const_effect = rh_plasma_04_proj
|
||||
lifetime = 1.2
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -16711,7 +16760,7 @@ hp_gun_type = hp_gun_special_9
|
||||
damage_per_fire = 0
|
||||
power_usage = 237.75
|
||||
refire_delay = 0.5
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 19.6
|
||||
flash_particle_name = rh_plasma_04_flash
|
||||
@@ -21946,8 +21995,8 @@ nickname = special_gun22_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 925
|
||||
energy_damage = 132
|
||||
hull_damage = 682
|
||||
energy_damage = 138
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = spectre_impact
|
||||
const_effect = spectre_proj
|
||||
@@ -21972,8 +22021,8 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 185.8
|
||||
refire_delay = 0.330000
|
||||
power_usage = 146.2
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 700
|
||||
toughness = 17.600000
|
||||
flash_particle_name = spectre_flash
|
||||
@@ -22040,12 +22089,12 @@ nickname = special_gun24_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 870
|
||||
energy_damage = 182
|
||||
hull_damage = 468.2
|
||||
energy_damage = 94
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = frostbite_impact
|
||||
const_effect = frostbite_proj
|
||||
lifetime = 1
|
||||
lifetime = 0.8
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -22066,9 +22115,9 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 191.8
|
||||
refire_delay = 0.330000
|
||||
muzzle_velocity = 700
|
||||
power_usage = 95
|
||||
refire_delay = 0.17
|
||||
muzzle_velocity = 750
|
||||
toughness = 17.600000
|
||||
flash_particle_name = frostbite_flash
|
||||
flash_radius = 15
|
||||
@@ -22273,12 +22322,12 @@ nickname = special_gun29_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 642.8
|
||||
energy_damage = 175
|
||||
hull_damage = 468.2
|
||||
energy_damage = 94
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = phantom_impact
|
||||
const_effect = phantom_proj
|
||||
lifetime = 1,166
|
||||
lifetime = 0.8
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -22299,9 +22348,9 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 152.8
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 600.3
|
||||
power_usage = 95.2
|
||||
refire_delay = 0.17
|
||||
muzzle_velocity = 750
|
||||
toughness = 17.600000
|
||||
flash_particle_name = phantom_flash
|
||||
flash_radius = 15
|
||||
@@ -22367,8 +22416,8 @@ nickname = special_gun31_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 925
|
||||
energy_damage = 132
|
||||
hull_damage = 685
|
||||
energy_damage = 134
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = wraith_impact
|
||||
const_effect = wraith_proj
|
||||
@@ -22393,8 +22442,8 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 185.8
|
||||
refire_delay = 0.330000
|
||||
power_usage = 145.2
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 700
|
||||
toughness = 17.600000
|
||||
flash_particle_name = wraith_flash
|
||||
@@ -22415,7 +22464,7 @@ hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 925
|
||||
energy_damage = 132
|
||||
energy_damage = 182
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = vector_impact
|
||||
const_effect = vector_proj
|
||||
@@ -22440,9 +22489,9 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 185.8
|
||||
power_usage = 191.8
|
||||
refire_delay = 0.330000
|
||||
muzzle_velocity = 700
|
||||
muzzle_velocity = 600.3
|
||||
toughness = 17.600000
|
||||
flash_particle_name = vector_flash
|
||||
flash_radius = 15
|
||||
@@ -22461,12 +22510,12 @@ nickname = special_gun33_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 870
|
||||
hull_damage = 925
|
||||
energy_damage = 182
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = nightfrost_impact
|
||||
const_effect = nightfrost_proj
|
||||
lifetime = 1
|
||||
lifetime = 1.166
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -22489,7 +22538,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 191.8
|
||||
refire_delay = 0.330000
|
||||
muzzle_velocity = 700
|
||||
muzzle_velocity = 600.3
|
||||
toughness = 17.600000
|
||||
flash_particle_name = nightfrost_flash
|
||||
flash_radius = 15
|
||||
@@ -22508,12 +22557,12 @@ nickname = special_gun34_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 870
|
||||
energy_damage = 182
|
||||
hull_damage = 686.4
|
||||
energy_damage = 129
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = frostbite_impact
|
||||
const_effect = firefreeze_proj
|
||||
lifetime = 1
|
||||
lifetime = 0.8
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -22534,9 +22583,9 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 191.8
|
||||
refire_delay = 0.330000
|
||||
muzzle_velocity = 700
|
||||
power_usage = 146.7
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 750
|
||||
toughness = 17.600000
|
||||
flash_particle_name = frostbite_flash
|
||||
flash_radius = 15
|
||||
@@ -22555,8 +22604,8 @@ nickname = special_gun35_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 870
|
||||
energy_damage = 182
|
||||
hull_damage = 685
|
||||
energy_damage = 134
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = frostbite_impact
|
||||
const_effect = winterfresh_proj
|
||||
@@ -22581,8 +22630,8 @@ volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 191.8
|
||||
refire_delay = 0.330000
|
||||
power_usage = 145.2
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 700
|
||||
toughness = 17.600000
|
||||
flash_particle_name = frostbite_flash
|
||||
@@ -22595,6 +22644,55 @@ turn_rate = 90
|
||||
lootable = true
|
||||
LODranges = 0, 40, 80, 150
|
||||
|
||||
; ICESPLINTER
|
||||
|
||||
[Munition]
|
||||
nickname = special_gun36_ammo
|
||||
hp_type = hp_gun
|
||||
requires_ammo = false
|
||||
hit_pts = 2
|
||||
hull_damage = 328.8
|
||||
energy_damage = 62
|
||||
one_shot_sound = fire_tachyon5
|
||||
munition_hit_effect = icesplinter_impact
|
||||
const_effect = icesplinter_proj
|
||||
lifetime = 0.8
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
|
||||
[Gun]
|
||||
nickname = special_gun36
|
||||
ids_name = 299070
|
||||
ids_info = 299071
|
||||
DA_archetype = equipment\models\weapons\co_proton_cooker.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
HP_child = HPConnect
|
||||
hit_pts = 6752
|
||||
explosion_resistance = 1
|
||||
debris_type = debris_normal
|
||||
parent_impulse = 20
|
||||
child_impulse = 80
|
||||
volume = 0
|
||||
mass = 10
|
||||
hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 68.05
|
||||
refire_delay = 0.12
|
||||
muzzle_velocity = 750
|
||||
use_animation = Sc_fire
|
||||
toughness = 17.6
|
||||
flash_particle_name = icesplinter_flash
|
||||
flash_radius = 15
|
||||
light_anim = l_gun01_flash
|
||||
projectile_archetype = special_gun36_ammo
|
||||
separation_explosion = sever_debris
|
||||
auto_turret = false
|
||||
turn_rate = 90
|
||||
lootable = true
|
||||
LODranges = 0, 999999
|
||||
|
||||
|
||||
; MIRAGE
|
||||
|
||||
[Munition]
|
||||
@@ -29671,7 +29769,7 @@ volume = 0.000100
|
||||
; New Weapon Effect
|
||||
; Nomad Gun Effect GREEN Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_green_500_ammo
|
||||
@@ -29683,7 +29781,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_green_impact
|
||||
const_effect = no_gun_green_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -29706,7 +29804,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_green_flash
|
||||
@@ -29867,7 +29965,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect GREEN cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_green_500_ammo
|
||||
@@ -29879,7 +29977,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_green_impact
|
||||
const_effect = no_gun_green_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -29902,7 +30000,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_green_flash
|
||||
@@ -30063,7 +30161,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect GREEN Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_green_500_ammo
|
||||
@@ -30075,7 +30173,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_green_impact
|
||||
const_effect = no_gun_green_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -30098,7 +30196,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_green_flash
|
||||
@@ -30260,7 +30358,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect YELLOW Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_yellow_500_ammo
|
||||
@@ -30272,7 +30370,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_yellow_impact
|
||||
const_effect = no_gun_yellow_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -30295,7 +30393,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_yellow_flash
|
||||
@@ -30456,7 +30554,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect YELLOW cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_yellow_500_ammo
|
||||
@@ -30468,7 +30566,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_yellow_impact
|
||||
const_effect = no_gun_yellow_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -30491,7 +30589,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_yellow_flash
|
||||
@@ -30651,7 +30749,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect YELLOW Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_yellow_500_ammo
|
||||
@@ -30663,7 +30761,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_yellow_impact
|
||||
const_effect = no_gun_yellow_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -30686,7 +30784,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_yellow_flash
|
||||
@@ -30846,7 +30944,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect RED Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_red_500_ammo
|
||||
@@ -30858,7 +30956,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_red_impact
|
||||
const_effect = no_gun_red_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -30881,7 +30979,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_red_flash
|
||||
@@ -31041,7 +31139,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect RED cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_red_500_ammo
|
||||
@@ -31053,7 +31151,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_red_impact
|
||||
const_effect = no_gun_red_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -31076,7 +31174,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_red_flash
|
||||
@@ -31237,7 +31335,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect RED Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_red_500_ammo
|
||||
@@ -31249,7 +31347,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_red_impact
|
||||
const_effect = no_gun_red_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -31272,7 +31370,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_red_flash
|
||||
@@ -31433,7 +31531,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect CYAN Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_cyan_500_ammo
|
||||
@@ -31445,7 +31543,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_cyan_impact
|
||||
const_effect = no_gun_cyan_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -31468,7 +31566,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_cyan_flash
|
||||
@@ -31629,7 +31727,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect CYAN cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_cyan_500_ammo
|
||||
@@ -31641,7 +31739,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_cyan_impact
|
||||
const_effect = no_gun_cyan_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -31664,7 +31762,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_cyan_flash
|
||||
@@ -31825,7 +31923,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect CYAN Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_cyan_500_ammo
|
||||
@@ -31837,7 +31935,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_cyan_impact
|
||||
const_effect = no_gun_cyan_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -31860,7 +31958,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_cyan_flash
|
||||
@@ -32022,7 +32120,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect BLUE Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_blue_500_ammo
|
||||
@@ -32034,7 +32132,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_blue_impact
|
||||
const_effect = no_gun_blue_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -32057,7 +32155,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_blue_flash
|
||||
@@ -32218,7 +32316,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect BLUE cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_blue_500_ammo
|
||||
@@ -32230,7 +32328,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_blue_impact
|
||||
const_effect = no_gun_blue_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -32253,7 +32351,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_blue_flash
|
||||
@@ -32414,7 +32512,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect BLUE Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_blue_500_ammo
|
||||
@@ -32426,7 +32524,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_blue_impact
|
||||
const_effect = no_gun_blue_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -32449,7 +32547,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_blue_flash
|
||||
@@ -32610,7 +32708,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect ORANGE Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_orange_500_ammo
|
||||
@@ -32622,7 +32720,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_orange_impact
|
||||
const_effect = no_gun_orange_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -32645,7 +32743,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_orange_flash
|
||||
@@ -32807,7 +32905,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect ORANGE cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_orange_500_ammo
|
||||
@@ -32819,7 +32917,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_orange_impact
|
||||
const_effect = no_gun_orange_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -32842,7 +32940,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun_orange_flash
|
||||
@@ -33003,7 +33101,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect ORANGE Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_orange_500_ammo
|
||||
@@ -33015,7 +33113,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun_orange_impact
|
||||
const_effect = no_gun_orange_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -33038,7 +33136,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun_orange_flash
|
||||
@@ -33198,7 +33296,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect Purple Blaster
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_blaster_purple_500_ammo
|
||||
@@ -33210,7 +33308,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun01_rank01_impact
|
||||
const_effect = no_gun01_rank01_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -33233,7 +33331,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.25
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun01_rank01_flash
|
||||
@@ -33394,7 +33492,7 @@ LODranges = 0, 999999
|
||||
|
||||
; Nomad Gun Effect Purple cannon
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_cannon_purple_500_ammo
|
||||
@@ -33406,7 +33504,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun01_rank01_impact
|
||||
const_effect = no_gun01_rank01_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -33429,7 +33527,7 @@ hp_gun_type = hp_gun_special_10
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 25.4
|
||||
flash_particle_name = no_gun01_rank01_flash
|
||||
@@ -33590,7 +33688,7 @@ LODranges = 0, 20, 60, 100
|
||||
|
||||
; Nomad Gun Effect Purple Prototyp
|
||||
|
||||
; Projectile Speed 500
|
||||
; Projectile Speed 650
|
||||
|
||||
[Munition]
|
||||
nickname = nomad_prototyp_purple_500_ammo
|
||||
@@ -33602,7 +33700,7 @@ energy_damage = 0
|
||||
one_shot_sound = fire_no1
|
||||
munition_hit_effect = no_gun01_rank01_impact
|
||||
const_effect = no_gun01_rank01_proj
|
||||
lifetime = 1.398
|
||||
lifetime = 1
|
||||
force_gun_ori = false
|
||||
mass = 1
|
||||
volume = 0.0001
|
||||
@@ -33625,7 +33723,7 @@ hp_gun_type = hp_gun_special_7
|
||||
damage_per_fire = 0
|
||||
power_usage = 0
|
||||
refire_delay = 0.33
|
||||
muzzle_velocity = 500
|
||||
muzzle_velocity = 650
|
||||
use_animation = Sc_fire
|
||||
toughness = 9.1
|
||||
flash_particle_name = no_gun01_rank01_flash
|
||||
|
||||
@@ -1189,7 +1189,21 @@ ids_info = 264213
|
||||
shop_archetype = equipment\models\weapons\ge_shredder_shotgun.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
|
||||
; Acc. Tizona del Cid
|
||||
; Steady Tizona del Cid
|
||||
|
||||
[Good]
|
||||
nickname = fc_c_gun02_mark03_650
|
||||
equipment = fc_c_gun02_mark03_650
|
||||
category = equipment
|
||||
price = 120480
|
||||
item_icon = equipment\models\commodities\nn_icons\EQUIPICON_gun.3db
|
||||
combinable = false
|
||||
ids_name = 520002
|
||||
ids_info = 264213
|
||||
shop_archetype = equipment\models\weapons\ge_shredder_shotgun.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
|
||||
; Swift Tizona del Cid
|
||||
|
||||
[Good]
|
||||
nickname = fc_c_gun02_mark03_700
|
||||
@@ -8762,6 +8776,19 @@ ids_info = 299049
|
||||
shop_archetype = equipment\models\weapons\co_proton_cooker.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
|
||||
; Codename ICESPLINTER
|
||||
[Good]
|
||||
nickname = special_gun36
|
||||
equipment = special_gun36
|
||||
category = equipment
|
||||
price = 115660
|
||||
item_icon = equipment\models\commodities\nn_icons\EQUIPICON_gun.3db
|
||||
combinable = false
|
||||
ids_name = 299070
|
||||
ids_info = 299071
|
||||
shop_archetype = equipment\models\weapons\co_proton_cooker.cmp
|
||||
material_library = equipment\models\ge_equip.mat
|
||||
|
||||
; Codename MIRAGE
|
||||
|
||||
[Good]
|
||||
|
||||
@@ -5586,6 +5586,26 @@ alchemy = fx\weapons\customs\nightfrost.ale
|
||||
effect_crc = -178517499
|
||||
textures = fx\planetflare.txm
|
||||
|
||||
; Codename: ICESPLINTER
|
||||
[VisEffect]
|
||||
nickname = icesplinter_proj
|
||||
alchemy = fx\weapons\customs\icesplinter.ale
|
||||
effect_crc = 319401777
|
||||
textures = fx\treewyrm.txm
|
||||
|
||||
[VisEffect]
|
||||
nickname = icesplinter_impact
|
||||
alchemy = fx\weapons\customs\icesplinter.ale
|
||||
effect_crc = -238753465
|
||||
textures = fx\smoke.txm
|
||||
textures = fx\sarma.txm
|
||||
|
||||
[VisEffect]
|
||||
nickname = icesplinter_flash
|
||||
alchemy = fx\weapons\customs\icesplinter.ale
|
||||
effect_crc = 263963525
|
||||
textures = fx\standardeffects.txm
|
||||
|
||||
; Codename: HYDRA
|
||||
[VisEffect]
|
||||
nickname = hydra_proj
|
||||
|
||||
@@ -964,4 +964,22 @@ head_brightness = 1
|
||||
trail_brightness = 1
|
||||
head_texture = star
|
||||
trail_texture = wide
|
||||
flash_size = 3
|
||||
|
||||
; ICESPLINTER Beam effect
|
||||
|
||||
[BeamSpear]
|
||||
nickname = icesplinter_beam
|
||||
tip_length = 15
|
||||
tail_length = 15
|
||||
head_width = 0.5
|
||||
core_width = 0.8
|
||||
tip_color = 120, 220, 255
|
||||
core_color = 120, 220, 255
|
||||
outter_color = 120, 220, 255
|
||||
tail_color = 120, 220, 255
|
||||
head_brightness = 1
|
||||
trail_brightness = 1
|
||||
head_texture = star
|
||||
trail_texture = wide
|
||||
flash_size = 3
|
||||
@@ -4025,6 +4025,23 @@ nickname = nightfrost_proj
|
||||
effect_type = EFT_WEAPON_PROJ
|
||||
vis_effect = nightfrost_proj
|
||||
|
||||
; ICESPLINTER
|
||||
[Effect]
|
||||
nickname = icesplinter_flash
|
||||
effect_type = EFT_MUZZLE_FLASH
|
||||
vis_effect = icesplinter_flash
|
||||
|
||||
[Effect]
|
||||
nickname = icesplinter_impact
|
||||
effect_type = EFT_WEAPON_IMPACT
|
||||
vis_effect = icesplinter_impact
|
||||
|
||||
[Effect]
|
||||
nickname = icesplinter_proj
|
||||
effect_type = EFT_WEAPON_PROJ
|
||||
vis_effect = icesplinter_proj
|
||||
vis_beam = icesplinter_beam
|
||||
|
||||
; HYDRA
|
||||
[Effect]
|
||||
nickname = hydra_flash
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
; REM: the REM target marks (REM client rem_target_hud.cpp); textures made by
|
||||
; REM-Client tools/rem/make_hud_txm.py
|
||||
[Texture]
|
||||
file = interface\REM\rem_hud.txm
|
||||
tex_shape = REM_skull.tga
|
||||
tex_shape = REM_probe.tga
|
||||
tex_shape = REM_menu.tga
|
||||
@@ -319,4 +319,29 @@ id = USER_TRADE_REQUEST
|
||||
group_num = 2
|
||||
name = 1504
|
||||
|
||||
[key]
|
||||
id = USER_REM_SENSOR_PROBE
|
||||
|
||||
[key]
|
||||
id = USER_REM_ACTIVATE_PROBE
|
||||
|
||||
[key]
|
||||
id = USER_REM_WAYPOINT_BOT
|
||||
|
||||
[key]
|
||||
id = USER_REM_SECTOR_SCANNER
|
||||
|
||||
[key]
|
||||
id = USER_REM_WAYPOINTS
|
||||
|
||||
[key]
|
||||
id = USER_REM_BASE
|
||||
|
||||
[key]
|
||||
id = USER_REM_MISSIONS
|
||||
|
||||
[key]
|
||||
id = USER_REM_CONTRACTS
|
||||
|
||||
[key]
|
||||
id = USER_REM_PLAYER
|
||||
|
||||
@@ -1018,8 +1018,68 @@ nickname = DBG_FIRE_FORWARD
|
||||
state = keydown
|
||||
key = 32
|
||||
|
||||
; REM: REM key commands (REM client, rem_hotkeys.h), unbound by default
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_SENSOR_PROBE
|
||||
ids_name = 524500
|
||||
ids_info = 524501
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_ACTIVATE_PROBE
|
||||
ids_name = 524502
|
||||
ids_info = 524503
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_WAYPOINTS
|
||||
ids_name = 524504
|
||||
ids_info = 524505
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_BASE
|
||||
ids_name = 524506
|
||||
ids_info = 524507
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_MISSIONS
|
||||
ids_name = 524508
|
||||
ids_info = 524509
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_CONTRACTS
|
||||
ids_name = 524510
|
||||
ids_info = 524511
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_PLAYER
|
||||
ids_name = 524512
|
||||
ids_info = 524513
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_WAYPOINT_BOT
|
||||
ids_name = 524514
|
||||
ids_info = 524515
|
||||
state = keydown
|
||||
|
||||
[KeyCmd]
|
||||
nickname = USER_REM_SECTOR_SCANNER
|
||||
ids_name = 524526
|
||||
ids_info = 524527
|
||||
state = keydown
|
||||
|
||||
[KeyMap]
|
||||
nickname = IDR_ALWAYS_PRESENT
|
||||
key = USER_REM_WAYPOINTS
|
||||
key = USER_REM_BASE
|
||||
key = USER_REM_MISSIONS
|
||||
key = USER_REM_CONTRACTS
|
||||
key = USER_REM_PLAYER
|
||||
key = USER_YES
|
||||
key = USER_NO
|
||||
key = USER_CANCEL
|
||||
@@ -1055,6 +1115,10 @@ nickname = IDR_GAMEFLOW
|
||||
|
||||
[KeyMap]
|
||||
nickname = IDR_SPACE
|
||||
key = USER_REM_SECTOR_SCANNER
|
||||
key = USER_REM_WAYPOINT_BOT
|
||||
key = USER_REM_SENSOR_PROBE
|
||||
key = USER_REM_ACTIVATE_PROBE
|
||||
key = USER_MANEUVER_FREE_FLIGHT
|
||||
key = USER_MANEUVER_GOTO
|
||||
key = USER_MANEUVER_DOCK
|
||||
|
||||
@@ -1736,10 +1736,6 @@ drop_properties = 25, 646965, 646965, 0, 2, 1
|
||||
nickname = special_gun15
|
||||
drop_properties = 25, 646965, 646965, 0, 2, 1
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_halloween
|
||||
drop_properties = 100, 0, 3333, 1, 150, 150
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_presentbox
|
||||
drop_properties = 100, 0, 3333, 1, 150, 150
|
||||
@@ -2648,6 +2644,36 @@ toughness_range = 11, 19
|
||||
percent_chance = 0.32
|
||||
num_to_drop = 1, 1
|
||||
|
||||
; PHANTOM Blueprint
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_phantom_blueprint
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; PHANTOM Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_phantom_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; VECTOR Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_vector_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; WRAITH Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_wraith_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; HALLOWEEN EVENT ITEM
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_halloween
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; VECTOR Schematic
|
||||
|
||||
[PhantomLoot]
|
||||
@@ -2656,6 +2682,14 @@ toughness_range = 11, 19
|
||||
percent_chance = 0.52
|
||||
num_to_drop = 1, 1
|
||||
|
||||
; HALLOWEEN EVENT ITEM
|
||||
|
||||
[PhantomLoot]
|
||||
nickname = commodity_halloween
|
||||
toughness_range = 11, 19
|
||||
percent_chance = 100
|
||||
num_to_drop = 1, 1
|
||||
|
||||
; WRAITH Schematic
|
||||
|
||||
[PhantomLoot]
|
||||
@@ -3032,36 +3066,12 @@ drop_properties = 100, 500, 600, 0, 2, 1
|
||||
nickname = commodity_venator_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; PHANTOM Blueprint
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_phantom_blueprint
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; PHANTOM Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_phantom_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; Tizona del Cid Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_tizona_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; VECTOR Cid Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_vector_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; WRAITH Cid Schematic
|
||||
|
||||
[mLootProps]
|
||||
nickname = commodity_wraith_schematic
|
||||
drop_properties = 100, 500, 600, 0, 2, 1
|
||||
|
||||
; VULCAN Blueprint
|
||||
|
||||
[mLootProps]
|
||||
|
||||
@@ -10806,4 +10806,30 @@ cargo = commodity_ship_hull_panels, 25
|
||||
[Loadout]
|
||||
nickname = SECRET_transport_large_anomalie01
|
||||
archetype = suprise_transport_large
|
||||
cargo = commodity_shield_schematic, 1
|
||||
cargo = commodity_shield_schematic, 1
|
||||
|
||||
|
||||
; Drone
|
||||
|
||||
[Loadout]
|
||||
nickname = ge_drone_loadout01
|
||||
archetype = ge_drone
|
||||
equip = ge_gf6_engine_01, HpDrive01
|
||||
equip = shield01_mark07_hf, HpShield01
|
||||
equip = ge_fighter6_power01, HpPower01
|
||||
equip = ge_s_scanner_01
|
||||
equip = ge_s_tractor_01
|
||||
equip = ge_s_thruster_01, HpThruster01
|
||||
equip = rem_gun05_mark05, HpWeapon01
|
||||
equip = rem_gun05_mark05, HpWeapon02
|
||||
equip = rem_gun05_mark05, HpWeapon03
|
||||
equip = rem_gun05_mark05, HpWeapon04
|
||||
equip = ge_s_cm_01, HpCM01
|
||||
cargo = ge_s_cm_01_ammo, 50
|
||||
equip = LargeWhiteSpecial, HpHeadlight
|
||||
equip = SlowSmallBlue, HpRunningLight01
|
||||
equip = SlowSmallBlue, HpRunningLight02
|
||||
equip = SlowSmallBlue, HpRunningLight03
|
||||
equip = SlowSmallBlue, HpRunningLight04
|
||||
equip = DockingLightRedSmall, HpDockLight01
|
||||
equip = DockingLightRedSmall, HpDockLight02
|
||||
@@ -80,7 +80,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = port fin_lod1
|
||||
@@ -216,7 +216,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = Li_star_wing_lod1
|
||||
@@ -493,7 +493,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
steering_torque = 54000, 54000, 104000
|
||||
angular_drag = 60000, 60000, 60000
|
||||
rotation_inertia = 16800, 16800, 16800
|
||||
@@ -1108,7 +1108,7 @@ rotation_inertia = 2800, 2800, 1000
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = br_fighter_tail_lod1
|
||||
@@ -1208,7 +1208,7 @@ rotation_inertia = 8400, 8400, 8400
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = br_port_wing_lod1
|
||||
@@ -1352,7 +1352,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = br_freighter_port_wing_lod1
|
||||
@@ -1988,7 +1988,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = wing_starboard_lod1
|
||||
@@ -2286,7 +2286,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = starboard_wing_lod1
|
||||
@@ -2428,7 +2428,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05, HpTurret06
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
HP_tractor_source = HpTractor_Source
|
||||
num_exhaust_nozzles = 2
|
||||
|
||||
@@ -3127,7 +3127,7 @@ num_exhaust_nozzles = 1
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = port_wing_lod1
|
||||
@@ -3256,7 +3256,7 @@ num_exhaust_nozzles = 2
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = Rh_port_wing_lod1
|
||||
@@ -3398,7 +3398,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05, HpTurret06
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
HP_tractor_source = HpTractor_Source
|
||||
num_exhaust_nozzles = 2
|
||||
|
||||
@@ -3935,7 +3935,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bh_topfin_lod1
|
||||
@@ -4070,7 +4070,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bh_topfin_lod1
|
||||
@@ -4214,7 +4214,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bh_topfin_lod1
|
||||
@@ -4351,7 +4351,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
HP_tractor_source = HpTractor_Source
|
||||
num_exhaust_nozzles = 2
|
||||
|
||||
@@ -4464,7 +4464,7 @@ num_exhaust_nozzles = 3
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = fins_top_lod1
|
||||
@@ -4591,7 +4591,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
HP_tractor_source = HpTractor_Source
|
||||
num_exhaust_nozzles = 2
|
||||
|
||||
@@ -4705,7 +4705,7 @@ num_exhaust_nozzles = 2
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
|
||||
[CollisionGroup]
|
||||
@@ -4871,7 +4871,7 @@ num_exhaust_nozzles = 2
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = wing_port_lod1
|
||||
@@ -5019,7 +5019,8 @@ num_exhaust_nozzles = 2
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_rem_module02, HpJump
|
||||
|
||||
[CollisionGroup]
|
||||
obj = wing_port_lod1
|
||||
@@ -5157,13 +5158,14 @@ hp_type = hp_gun_special_2, HpWeapon01, HpWeapon02, HpWeapon03
|
||||
hp_type = hp_gun_special_1, HpWeapon01, HpWeapon02, HpWeapon03
|
||||
hp_type = hp_fighter_shield_special_4, HpShield01
|
||||
hp_type = hp_fighter_shield_special_3, HpShield01
|
||||
hp_type = hp_fighter_shield_special_2, HpShield01
|
||||
hp_type = hp_thruster, HpThruster01
|
||||
hp_type = hp_mine_dropper, HpMine01
|
||||
hp_type = hp_countermeasure_dropper, HpCM01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_elite_shield_special_2, HpCloak01
|
||||
|
||||
[CollisionGroup]
|
||||
@@ -5263,7 +5265,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = port_wing_lod1
|
||||
@@ -5379,7 +5381,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = cv_port_wing_lod1
|
||||
@@ -5522,7 +5524,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = cv_port_wing_lod1
|
||||
@@ -5655,7 +5657,8 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_rem_module02, HpJump
|
||||
hp_type = hp_elite_shield_special_2, HpCloak01
|
||||
|
||||
[CollisionGroup]
|
||||
@@ -5805,7 +5808,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = cv_port_wing_g_lod1
|
||||
@@ -5954,7 +5957,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = cv_port_wing_b_lod1
|
||||
@@ -6093,7 +6096,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_fighter_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bw_port_wing01_lod1
|
||||
@@ -6203,7 +6206,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bw_port_wing01_lod1
|
||||
@@ -6393,7 +6396,8 @@ hp_type = hp_turret_special_1, HpTurret01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_rem_module02, HpJump
|
||||
|
||||
[CollisionGroup]
|
||||
obj = bw_port_wing01_lod1
|
||||
@@ -6527,7 +6531,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
steering_torque = 54000, 54000, 54000
|
||||
angular_drag = 60000, 60000, 60000
|
||||
rotation_inertia = 16800, 16800, 16800
|
||||
@@ -6662,7 +6666,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = Or_star_wing_lod1
|
||||
@@ -8684,7 +8688,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
|
||||
[CollisionGroup]
|
||||
@@ -8855,7 +8859,7 @@ hp_type = hp_turret_special_2, HpTurret01
|
||||
hp_type = hp_turret_special_1, HpTurret01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
surface_hit_effects = 0, small_hull_hit_light01, small_hull_hit_light02, small_hull_hit_light03
|
||||
surface_hit_effects = 150, small_hull_hit_medium01, small_hull_hit_medium02, small_hull_hit_medium03
|
||||
@@ -8962,7 +8966,7 @@ shield_battery_limit = 58
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = starboard_wing_lod1
|
||||
@@ -9097,7 +9101,7 @@ hp_type = hp_thruster, HpEngine01
|
||||
hp_type = hp_countermeasure_dropper, HpEngine02
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
|
||||
|
||||
@@ -9143,7 +9147,7 @@ hp_type = hp_countermeasure_dropper, HpEngine01
|
||||
hp_type = hp_freighter_shield_special_1, HpCargo01, HpCargo02
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
steering_torque = 22405000, 22405000, 22405000
|
||||
angular_drag = 64000000, 64000000, 64000000
|
||||
rotation_inertia = 2000000, 18000000, 18000000
|
||||
@@ -9217,7 +9221,7 @@ camera_turn_look_ahead_slerp_amount = 1.000000
|
||||
cockpit = cockpits\hc_transport.ini
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
|
||||
; Alpaca
|
||||
@@ -9296,7 +9300,7 @@ hp_type = hp_turret_special_2, HpTurret01, HpTurret02, HpTurret03, HpTurret04, H
|
||||
hp_type = hp_turret_special_1, HpTurret01, HpTurret02, HpTurret03, HpTurret04, HpTurret05
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
steering_torque = 54000, 54000, 104000
|
||||
angular_drag = 60000, 60000, 60000
|
||||
rotation_inertia = 16800, 16800, 16800
|
||||
@@ -9392,7 +9396,7 @@ shield_battery_limit = 61
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = Or_star_wing_s_lod1
|
||||
@@ -9485,7 +9489,7 @@ hp_type = hp_turret_special_2, HpTurret_U1_01, HpTurret_U1_02, HpTurret_U1_03, H
|
||||
hp_type = hp_turret_special_1, HpTurret_U1_01, HpTurret_U1_02, HpTurret_U1_03, HpTurret_U1_04, HpTurret_U1_05
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = lifter_clamp01_lod1
|
||||
@@ -9570,7 +9574,7 @@ hp_type = hp_thruster, HpThruster01
|
||||
hp_type = hp_countermeasure_dropper, HpCM01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_freighter_power_special_10, HpPower01
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
|
||||
[CollisionGroup]
|
||||
@@ -10118,7 +10122,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
|
||||
; HALLOWEEN JACK O LANTERN NPC
|
||||
@@ -10237,7 +10241,8 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_fighter_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
hp_type = hp_rem_module02, HpJump
|
||||
|
||||
[CollisionGroup]
|
||||
obj = cv02_port_wing_lod1
|
||||
@@ -10511,7 +10516,7 @@ hp_type = hp_torpedo_special_2, HpTorpedo01
|
||||
hp_type = hp_fighter_engine_special_10, HpDrive01
|
||||
hp_type = hp_elite_power_special_10, HpPower01
|
||||
hp_type = hp_elite_power_special_1, HpPower02
|
||||
hp_type = hp_elite_shield_special_1, HpVelocity
|
||||
hp_type = hp_rem_module01, HpVelocity
|
||||
|
||||
[CollisionGroup]
|
||||
obj = drone_port_wing01_lod1
|
||||
|
||||
@@ -13493,4 +13493,11 @@ cargo = experimental_weapons, 1
|
||||
[Loadout]
|
||||
nickname = hispania_loot_load
|
||||
equip = pod_hightech_crate, HpHispania01
|
||||
cargo = fc_c_gun03_mark03, 1, HpHispania01
|
||||
cargo = fc_c_gun03_mark03, 1, HpHispania01
|
||||
|
||||
|
||||
;
|
||||
|
||||
[Loadout]
|
||||
nickname = neb_debris_load
|
||||
equip = neb02_outside, HpNav01
|
||||
@@ -9832,4 +9832,20 @@ material_library = solar\MISC\blackhole.3db
|
||||
mass = 1e10
|
||||
hit_pts = 1e36
|
||||
solar_radius = 100000
|
||||
shape_name = NNM_SM_COMMUNICATIONS
|
||||
|
||||
|
||||
; nav_buoy_nebula
|
||||
|
||||
[Solar]
|
||||
nickname = neb01_debris
|
||||
type = NON_TARGETABLE
|
||||
DA_archetype = solar\rem_misc\neb01_debris.3db
|
||||
material_library = solar\rem_misc\neb01_debris.3db
|
||||
LODranges = 0, 999999
|
||||
mass = 10000
|
||||
hit_pts = 1e36
|
||||
nomad = true
|
||||
loadout = neb_debris_load
|
||||
solar_radius = 3000
|
||||
shape_name = NNM_SM_COMMUNICATIONS
|
||||
@@ -2,6 +2,7 @@
|
||||
-- 50000 to 50020 reserved for anomaly
|
||||
-- 524288 to 524353 reserved for engclass plugin
|
||||
-- 524400 - 524499 reserved for per-client dynamic trade mission infocards (server sync, SINGLE:)
|
||||
-- 524500 - 524549 reserved for REM key commands (keymap.ini, Controls page) and module slot names
|
||||
|
||||
-- Test Infocard
|
||||
rem.AddInfoCard(9000, "Spam")
|
||||
@@ -10,6 +11,37 @@ rem.AddInfoCard(9000, "Spam")
|
||||
-- HotkeyMenu Infocard (Override)
|
||||
rem.AddInfoCard(1904, "REMNANT")
|
||||
|
||||
-- REM key commands (name, description) -- Options > Controls
|
||||
rem.AddInfoCard(524500, "JETTISON SENSOR PROBE")
|
||||
rem.AddInfoCard(524501, "Drops a sensor probe from the cargo hold beside the ship.")
|
||||
rem.AddInfoCard(524502, "ACTIVATE SENSOR PROBE")
|
||||
rem.AddInfoCard(524503, "Starts the scan of the targeted sensor probe.")
|
||||
rem.AddInfoCard(524504, "REM WAYPOINTS")
|
||||
rem.AddInfoCard(524505, "Opens the REM waypoint sharing window.")
|
||||
rem.AddInfoCard(524506, "REM BASE MANAGER")
|
||||
rem.AddInfoCard(524507, "Opens the REM base manager (depot, market, crafting, research).")
|
||||
rem.AddInfoCard(524508, "REM MISSIONS")
|
||||
rem.AddInfoCard(524509, "Opens the REM missions window (story progress, races).")
|
||||
rem.AddInfoCard(524510, "REM CONTRACTS")
|
||||
rem.AddInfoCard(524511, "Opens the REM contract network (bounties).")
|
||||
rem.AddInfoCard(524512, "REM PLAYER")
|
||||
rem.AddInfoCard(524513, "Opens the REM player window (stats, skills, bank).")
|
||||
rem.AddInfoCard(524514, "TOGGLE WAYPOINT BOT")
|
||||
rem.AddInfoCard(524515, "Flies the waypoint route by autopilot (skill WayPoint Bot).")
|
||||
-- module slots hp_rem_module01..10 (ship view hardpoint captions)
|
||||
rem.AddInfoCard(524516, "MODULE SLOT 1")
|
||||
rem.AddInfoCard(524517, "MODULE SLOT 2")
|
||||
rem.AddInfoCard(524518, "MODULE SLOT 3")
|
||||
rem.AddInfoCard(524519, "MODULE SLOT 4")
|
||||
rem.AddInfoCard(524520, "MODULE SLOT 5")
|
||||
rem.AddInfoCard(524521, "MODULE SLOT 6")
|
||||
rem.AddInfoCard(524522, "MODULE SLOT 7")
|
||||
rem.AddInfoCard(524523, "MODULE SLOT 8")
|
||||
rem.AddInfoCard(524524, "MODULE SLOT 9")
|
||||
rem.AddInfoCard(524525, "MODULE SLOT 10")
|
||||
rem.AddInfoCard(524526, "SECTOR SCANNER")
|
||||
rem.AddInfoCard(524527, "Shows / hides the 3D sector scanner (contacts within 7.5 km).")
|
||||
|
||||
-- RACE INFOCARDS
|
||||
rem.AddInfoCard(9001, "1")
|
||||
rem.AddInfoCard(9002, "2")
|
||||
@@ -54,7 +86,7 @@ rem.AddInfoCard(455100, "Cygnus-Cluster")
|
||||
|
||||
-- Story Arc I - Liberty | Zero Point (Planet Manhattan - Li01_01_Base)
|
||||
rem.AddInfoCard(458751, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 01: Zero Point</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Today, there was another disturbing unconsciousness and daydreaming. Something strange, like seeing the past and the future at the same time. It felt like a warning — a vision of a threat and artifacts. But there was something more... something that remained difficult to understand.</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>By contacting Jun'ko Zane talking about ancient alien artifacts, she sent some information that Sean Ashcroft has been spotted near the Pittsburgh Debris Field. Ashcroft would be a good lead, as he has the best insight into the smuggling ring in Sirius, and after his former interrogation, he is still working for the Liberty Rogues on criminal activites.</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Finding Sean Ashcroft and talk to him on planet Pittsburgh will be a good start.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><TEXT>Objectives:</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Destroy Ashcroft's Ship</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Tractor in Ashcroft's Lifepod</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Land on Planet Pittsburgh</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
rem.AddInfoCard(458752, "Fly to Pittsburgh Debris Field")
|
||||
rem.AddInfoCard(458752, "Find Ashcroft in the Pittsburgh Debris Field")
|
||||
rem.AddInfoCard(458753, "Destroy Ashcroft's Ship")
|
||||
rem.AddInfoCard(458754, "Tractor in Ashcroft's Lifepod")
|
||||
rem.AddInfoCard(458755, "Land on Planet Pittsburgh")
|
||||
@@ -136,11 +168,13 @@ rem.AddInfoCard(459042, "Land on Buffalo Base")
|
||||
-- Story Arc II - Liberty | Data Fragment (Buffalo Station - Li01_12_Base)
|
||||
|
||||
rem.AddInfoCard(459050, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 05: Data Fragment (Liberty)</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>With the new confidence, I gained additional information about what exactly the Rebus is. It's a network of informants and pirate transmitters leading to one ship: The Rebus</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>For a long time, the authority started covert operations searching the whole Sirius Sector to find that source. To ensure that the location of the Rebus will not be discovered, the transmitters must be destroyed.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Objectives:</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Find and destroy the transmitter</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Loot and transmit the data fragment to Buffalo Station</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
rem.AddInfoCard(459051, "Follow the Nav-Buoy")
|
||||
rem.AddInfoCard(459052, "Defend the Scan Sensors")
|
||||
rem.AddInfoCard(459051, "Find and destroy the transmitter")
|
||||
rem.AddInfoCard(459052, "Fly to Sector B2")
|
||||
rem.AddInfoCard(459053, "Tractor in the Data Fragment")
|
||||
rem.AddInfoCard(459054, "Deliver the Data Fragment to Buffalo Base")
|
||||
rem.AddInfoCard(459055, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 05: Data Fragment (Liberty)</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>For now, the actions to preserve the secret were successful and the Rebus has not been disclosed. But the Liberty authorities are still dangerous and compromised. The physical separation of the Nomads from their hosts resulted in a permanent psychosis, caused by a lingering influence of a persistent mental connection to their parasites. Depending on the host's mental strength, this induced process of madness emerges and is prolonged over a long period of time.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>The Rebus Network gained another information that President Jacobi has been restructured the Liberty Security Force under the Command of Officer Jun'ko Zane. Both are aware about Liberty's inner corruption, so they formed the Liberty Security Force as a protection unit to save the president and trusted diplomats.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>To get access to the source of the ship, the location of The Rebus you have to find all four Data Fragments. You will find one of them in every House System: Bretonia, Kusari, Liberty and Rheinland. The Rebus transfered the Data Fragment (Liberty) to your Depot in Manhattan. With all Data Framents you can craft a FTL-module to get access to restricted areas in the Sirius sector.</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Landing on Planet Manhattan will end this mission and current story arc.</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
rem.AddInfoCard(459055, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 05: Data Fragment (Liberty)</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>For now, the actions to preserve the secret were successful and the Rebus has not been disclosed. But the Liberty authorities are still dangerous and compromised. The physical separation of the Nomads from their hosts resulted in a permanent psychosis, caused by a lingering influence of a persistent mental connection to their parasites. Depending on the host's mental strength, this induced process of madness emerges and is prolonged over a long period of time.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>The Rebus Network gained another information that President Jacobi has been restructured the Liberty Security Force under the Command of Officer Jun'ko Zane. Both are aware about Liberty's inner corruption, so they formed the Liberty Security Force as a protection unit to save the president and trusted diplomats.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>To get access to the source of the ship, the location of The Rebus you have to find all four Data Fragments. You will find one of them in every House System: Bretonia, Kusari, Liberty and Rheinland. The Rebus transfered the Data Fragment (Liberty) to your Depot in Manhattan. Each Data Frament can put in your FTL-module to get access to restricted areas in the galaxy.</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Landing on Planet Manhattan will end this mission and current story arc.</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
rem.AddInfoCard(459056, "Land on Planet Manhattan")
|
||||
rem.AddInfoCard(459057, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 05: Data Fragment (Liberty)</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Status: Mission accomplished</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><TEXT>Great Job! By arriving Planet Manhattan the Story Arc II - Liberty has been successfully completed. But your journey has not been stopped. Even more story arcs await you for showcasing our greatful mission system. Featuring many familiar faces from the Freelancer campaign, as well as newly introduced characters, this fanfiction expands upon the original game’s story while incorporating and developing concepts from the early Freelancer BETA.</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Continue the campaign with Story Arc III - Liberty in the Story Arc menu on Planet Manhattan.</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
|
||||
@@ -151,7 +185,7 @@ rem.AddInfoCard(458771, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JU
|
||||
rem.AddInfoCard(471205, "Investigate the wreckage")
|
||||
rem.AddInfoCard(458772, "Fly to Westpoint Military Academy")
|
||||
rem.AddInfoCard(458773, "Land on Westpoint to meet King")
|
||||
rem.AddInfoCard(458774, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 01: The Reunion</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Juni arranged a meeting with King to gather more information about Orillion. He once worked closely with The Order, but ever since his disappearance, Orillion has vanished without a trace, leaving his whereabouts unknown. King has located a distress beacon that may contain The Order patrol’s last known coordinates. It could be our only lead to determining Orillion’s last known location.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><TEXT>Objectives:</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Reach the Distress Beacon</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Find Orillion</TEXT><PARA/><JUST
|
||||
rem.AddInfoCard(458774, [[<?xml version="1.0" encoding="UTF-16"?><RDL><PUSH/><JUST loc="left"/><TEXT>Mission 01: The Reunion</TEXT><PARA/><TEXT></TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>Juni arranged a meeting with King to gather more information about Orillion. He once worked closely with The Order, but ever since his disappearance, Orillion has vanished without a trace, leaving his whereabouts unknown. King has located a distress beacon that may contain The Order patrol’s last known coordinates. It could be our only lead to determining Orillion’s last known location.</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT></TEXT><PARA/><JUST loc="left"/><TEXT>Objectives:</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Reach the Distress Beacon</TEXT><PARA/><JUST loc="left"/><JUST loc="left"/><TEXT>- Find Orillion</TEXT><PARA/><JUST loc="left"/><POP/></RDL>]])
|
||||
rem.AddInfoCard(458775, "Fly to Ithaca Research Station Debris")
|
||||
rem.AddInfoCard(458776, "Reach the Distress Beacon")
|
||||
rem.AddInfoCard(458777, "Destroy the Distress Beacon")
|
||||
|
||||
|
Before Width: | Height: | Size: 627 KiB After Width: | Height: | Size: 604 KiB |
|
After Width: | Height: | Size: 689 KiB |
|
After Width: | Height: | Size: 675 KiB |
|
After Width: | Height: | Size: 678 KiB |
|
After Width: | Height: | Size: 665 KiB |
|
After Width: | Height: | Size: 690 KiB |
|
After Width: | Height: | Size: 676 KiB |
|
After Width: | Height: | Size: 537 KiB |
@@ -13,8 +13,8 @@ Website : https://rem-freelancer.moe/
|
||||
|
||||
File Name : REM.zip
|
||||
File Size : 15,00 GB
|
||||
Mod Version : 0.4.7.0
|
||||
Date Released : 19/09/2026
|
||||
Mod Version : 0.4.9.3
|
||||
Date Released : 26/10/2026
|
||||
|
||||
******************************************************
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# REM tools
|
||||
|
||||
Generators for the REM interface art (Python 3, no extra packages). Inputs are PNGs (8 or 16 bit),
|
||||
the pictures of the old ClientHook are in `EXE/REM/UI`.
|
||||
|
||||
| Script | Makes |
|
||||
|---|---|
|
||||
| `make_icon_3db.py <in.png> <out.3db> <name> [--color]` | a NeuroNet-style icon (grey, tinted by the game), e.g. the REM bar icons in `DATA/INTERFACE/NEURONET/ICONS/rem_*.3db` |
|
||||
| `make_image_3db.py <in.png> <out.3db> <name> [--size N] [--nocrop] [--crop x0,y0,x1,y1]` | a coloured picture for the REM windows (medals, row icons, banners) in `DATA/INTERFACE/REM/IMAGES` |
|
||||
| `make_hud_txm.py <out.txm> <name>=<in.png> ...` | the HUD texture file `DATA/INTERFACE/REM/rem_hud.txm` (target marks) |
|
||||
|
||||
`<name>` must be unique per file: it becomes the material, texture and mesh names, and
|
||||
Freelancer keys materials globally by the CRC of the name. `utf.py` (UTF files) and `flcrc.py`
|
||||
(Freelancer's name CRC) are shared helpers.
|
||||
|
||||
Examples:
|
||||
|
||||
python tools/make_image_3db.py EXE/REM/UI/ICON/Cargo_icon.png DATA/INTERFACE/REM/IMAGES/icon_cargo.3db icon_cargo --size 128
|
||||
python tools/make_image_3db.py EXE/REM/UI/CONTRACTS/combat_image.png DATA/INTERFACE/REM/IMAGES/contracts_banner.3db contracts_banner --size 512 --nocrop --crop 0,420,1600,1220
|
||||
@@ -0,0 +1,56 @@
|
||||
"""Freelancer's name CRC (dacom.dll GetCRC32): its own table, names folded to lower case.
|
||||
|
||||
VMeshRef library ids and material ids in VMeshData are this CRC of the name.
|
||||
"""
|
||||
|
||||
_TABLE = [
|
||||
0x00000000, 0x09073096, 0x120E612C, 0x1B0951BA, 0xFF6DC419, 0xF66AF48F, 0xED63A535, 0xE46495A3,
|
||||
0xFEDB8832, 0xF7DCB8A4, 0xECD5E91E, 0xE5D2D988, 0x01B64C2B, 0x08B17CBD, 0x13B82D07, 0x1ABF1D91,
|
||||
0xFDB71064, 0xF4B020F2, 0xEFB97148, 0xE6BE41DE, 0x02DAD47D, 0x0BDDE4EB, 0x10D4B551, 0x19D385C7,
|
||||
0x036C9856, 0x0A6BA8C0, 0x1162F97A, 0x1865C9EC, 0xFC015C4F, 0xF5066CD9, 0xEE0F3D63, 0xE7080DF5,
|
||||
0xFB6E20C8, 0xF269105E, 0xE96041E4, 0xE0677172, 0x0403E4D1, 0x0D04D447, 0x160D85FD, 0x1F0AB56B,
|
||||
0x05B5A8FA, 0x0CB2986C, 0x17BBC9D6, 0x1EBCF940, 0xFAD86CE3, 0xF3DF5C75, 0xE8D60DCF, 0xE1D13D59,
|
||||
0x06D930AC, 0x0FDE003A, 0x14D75180, 0x1DD06116, 0xF9B4F4B5, 0xF0B3C423, 0xEBBA9599, 0xE2BDA50F,
|
||||
0xF802B89E, 0xF1058808, 0xEA0CD9B2, 0xE30BE924, 0x076F7C87, 0x0E684C11, 0x15611DAB, 0x1C662D3D,
|
||||
0xF6DC4190, 0xFFDB7106, 0xE4D220BC, 0xEDD5102A, 0x09B18589, 0x00B6B51F, 0x1BBFE4A5, 0x12B8D433,
|
||||
0x0807C9A2, 0x0100F934, 0x1A09A88E, 0x130E9818, 0xF76A0DBB, 0xFE6D3D2D, 0xE5646C97, 0xEC635C01,
|
||||
0x0B6B51F4, 0x026C6162, 0x196530D8, 0x1062004E, 0xF40695ED, 0xFD01A57B, 0xE608F4C1, 0xEF0FC457,
|
||||
0xF5B0D9C6, 0xFCB7E950, 0xE7BEB8EA, 0xEEB9887C, 0x0ADD1DDF, 0x03DA2D49, 0x18D37CF3, 0x11D44C65,
|
||||
0x0DB26158, 0x04B551CE, 0x1FBC0074, 0x16BB30E2, 0xF2DFA541, 0xFBD895D7, 0xE0D1C46D, 0xE9D6F4FB,
|
||||
0xF369E96A, 0xFA6ED9FC, 0xE1678846, 0xE860B8D0, 0x0C042D73, 0x05031DE5, 0x1E0A4C5F, 0x170D7CC9,
|
||||
0xF005713C, 0xF90241AA, 0xE20B1010, 0xEB0C2086, 0x0F68B525, 0x066F85B3, 0x1D66D409, 0x1461E49F,
|
||||
0x0EDEF90E, 0x07D9C998, 0x1CD09822, 0x15D7A8B4, 0xF1B33D17, 0xF8B40D81, 0xE3BD5C3B, 0xEABA6CAD,
|
||||
0xEDB88320, 0xE4BFB3B6, 0xFFB6E20C, 0xF6B1D29A, 0x12D54739, 0x1BD277AF, 0x00DB2615, 0x09DC1683,
|
||||
0x13630B12, 0x1A643B84, 0x016D6A3E, 0x086A5AA8, 0xEC0ECF0B, 0xE509FF9D, 0xFE00AE27, 0xF7079EB1,
|
||||
0x100F9344, 0x1908A3D2, 0x0201F268, 0x0B06C2FE, 0xEF62575D, 0xE66567CB, 0xFD6C3671, 0xF46B06E7,
|
||||
0xEED41B76, 0xE7D32BE0, 0xFCDA7A5A, 0xF5DD4ACC, 0x11B9DF6F, 0x18BEEFF9, 0x03B7BE43, 0x0AB08ED5,
|
||||
0x16D6A3E8, 0x1FD1937E, 0x04D8C2C4, 0x0DDFF252, 0xE9BB67F1, 0xE0BC5767, 0xFBB506DD, 0xF2B2364B,
|
||||
0xE80D2BDA, 0xE10A1B4C, 0xFA034AF6, 0xF3047A60, 0x1760EFC3, 0x1E67DF55, 0x056E8EEF, 0x0C69BE79,
|
||||
0xEB61B38C, 0xE266831A, 0xF96FD2A0, 0xF068E236, 0x140C7795, 0x1D0B4703, 0x060216B9, 0x0F05262F,
|
||||
0x15BA3BBE, 0x1CBD0B28, 0x07B45A92, 0x0EB36A04, 0xEAD7FFA7, 0xE3D0CF31, 0xF8D99E8B, 0xF1DEAE1D,
|
||||
0x1B64C2B0, 0x1263F226, 0x096AA39C, 0x006D930A, 0xE40906A9, 0xED0E363F, 0xF6076785, 0xFF005713,
|
||||
0xE5BF4A82, 0xECB87A14, 0xF7B12BAE, 0xFEB61B38, 0x1AD28E9B, 0x13D5BE0D, 0x08DCEFB7, 0x01DBDF21,
|
||||
0xE6D3D2D4, 0xEFD4E242, 0xF4DDB3F8, 0xFDDA836E, 0x19BE16CD, 0x10B9265B, 0x0BB077E1, 0x02B74777,
|
||||
0x18085AE6, 0x110F6A70, 0x0A063BCA, 0x03010B5C, 0xE7659EFF, 0xEE62AE69, 0xF56BFFD3, 0xFC6CCF45,
|
||||
0xE00AE278, 0xE90DD2EE, 0xF2048354, 0xFB03B3C2, 0x1F672661, 0x166016F7, 0x0D69474D, 0x046E77DB,
|
||||
0x1ED16A4A, 0x17D65ADC, 0x0CDF0B66, 0x05D83BF0, 0xE1BCAE53, 0xE8BB9EC5, 0xF3B2CF7F, 0xFAB5FFE9,
|
||||
0x1DBDF21C, 0x14BAC28A, 0x0FB39330, 0x06B4A3A6, 0xE2D03605, 0xEBD70693, 0xF0DE5729, 0xF9D967BF,
|
||||
0xE3667A2E, 0xEA614AB8, 0xF1681B02, 0xF86F2B94, 0x1C0BBE37, 0x150C8EA1, 0x0E05DF1B, 0x0702EF8D,
|
||||
]
|
||||
|
||||
|
||||
def _fold(ch):
|
||||
i = ch - 256 if ch >= 128 else ch # signed char
|
||||
if i < 0:
|
||||
off = 0x400 + i
|
||||
return (_TABLE[off >> 2] >> ((off & 3) * 8)) & 0xFF
|
||||
if ord('A') <= i <= ord('Z'):
|
||||
return i + 32
|
||||
return i
|
||||
|
||||
|
||||
def crc(name):
|
||||
c = 0xFFFFFFFF
|
||||
for ch in name.encode('latin-1'):
|
||||
c = _TABLE[(_fold(ch) ^ (c & 0xFF))] ^ (c >> 8)
|
||||
return (~c) & 0xFFFFFFFF
|
||||
@@ -0,0 +1,46 @@
|
||||
"""The REM HUD texture file (.txm) -- the icons drawn in the target brackets (rem_target_hud.cpp).
|
||||
|
||||
A .txm is a UTF file with one "Texture library" node, as DATA\\INTERFACE\\ButtonTextures.txm. Each
|
||||
PNG becomes a grey 32-bit TGA with alpha (brightest pixel white, three mips) named
|
||||
"REM_<name>.tga"; the HUD tints it with the bracket colour like Freelancer's own target corners.
|
||||
DATA\\INTERFACE\\REM\\rem_hud.ini lists the textures as shapes (tex_shape = REM_<name>.tga).
|
||||
|
||||
python tools/make_hud_txm.py <out.txm> <name>=<in.png> [<name>=<in.png> ...]
|
||||
|
||||
Example (the shipped file):
|
||||
|
||||
python tools/make_hud_txm.py DATA/INTERFACE/REM/rem_hud.txm \\
|
||||
skull=EXE/REM/UI/ICON/skull_icon.png \\
|
||||
probe=EXE/REM/UI/ICON/sensorprobe_active.png \\
|
||||
menu=EXE/REM/UI/ICON/target_menu.png
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import make_icon_3db as icon # noqa: E402
|
||||
import utf # noqa: E402
|
||||
|
||||
TEX_SIZE = 64
|
||||
|
||||
|
||||
def make(out, entries):
|
||||
N = utf.Node
|
||||
textures = []
|
||||
for name, png in entries:
|
||||
w, h, rows = icon.read_png(png)
|
||||
w, h, rows = icon.crop_to_content(w, h, rows)
|
||||
mips = [icon.tga(icon.to_grey(icon.resample(w, h, rows, size)))
|
||||
for size in (TEX_SIZE, TEX_SIZE // 2, TEX_SIZE // 4)]
|
||||
textures.append(N('REM_' + name + '.tga', children=[N('MIP%d' % i, data=m) for i, m in enumerate(mips)]))
|
||||
root = N('\\', children=[N('Texture library', children=textures)])
|
||||
os.makedirs(os.path.dirname(os.path.abspath(out)), exist_ok=True)
|
||||
utf.write(out, root)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 3 or any('=' not in a for a in sys.argv[2:]):
|
||||
print(__doc__)
|
||||
sys.exit(1)
|
||||
make(sys.argv[1], [a.split('=', 1) for a in sys.argv[2:]])
|
||||
print('wrote', sys.argv[1])
|
||||
@@ -0,0 +1,212 @@
|
||||
"""A Freelancer interface icon (.3db) from a PNG -- like the NeuroNet icons (NN_info.3db ...).
|
||||
|
||||
Retail icons are one textured quad: the mesh lives in DATA\\INTERFACE\\interface.generic.vms, the
|
||||
material (DcDtOcOt, Dt_flags 64) and a 32-bit TGA with three mips are inside the .3db. The
|
||||
texture is grey; the button tints it (white, yellow under the mouse). A new icon gets the same
|
||||
quad in its own embedded VMeshLibrary, its own material name (material ids are global, keyed by
|
||||
the name's CRC) and the PNG as grey + alpha, brightest pixel white.
|
||||
|
||||
python tools/make_icon_3db.py <in.png> <out.3db> <name> [--color]
|
||||
|
||||
<name> becomes the material "UI_REM_<name>", the texture "REM_<name>.tga" and the mesh library
|
||||
"rem_icon_<name>.lod0.vms". --color keeps the PNG's colours (not tinted like the originals).
|
||||
"""
|
||||
import os
|
||||
import struct
|
||||
import sys
|
||||
import zlib
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import flcrc # noqa: E402
|
||||
import utf # noqa: E402
|
||||
|
||||
# the retail NN_info quad (interface.generic-102.vms, start vertex 11026): x, y, z, u, v
|
||||
QUAD_HALF = 0.020543185994029045
|
||||
QUAD_Z = -2.1847961306775687e-06
|
||||
QUAD = [(-QUAD_HALF, QUAD_HALF, QUAD_Z, 0.0, 1.0), (-QUAD_HALF, -QUAD_HALF, QUAD_Z, 0.0, 0.0),
|
||||
(QUAD_HALF, QUAD_HALF, QUAD_Z, 1.0, 1.0), (QUAD_HALF, -QUAD_HALF, QUAD_Z, 1.0, 0.0)]
|
||||
QUAD_INDICES = [0, 1, 2, 1, 3, 2]
|
||||
TEX_SIZE = 128
|
||||
|
||||
|
||||
def read_png(path):
|
||||
"""RGBA rows (top first) of an 8-bit PNG: grey, grey+alpha, RGB, RGBA or palette."""
|
||||
d = open(path, 'rb').read()
|
||||
assert d[:8] == b'\x89PNG\r\n\x1a\n', path
|
||||
pos = 8
|
||||
idat = b''
|
||||
palette = trns = None
|
||||
while pos < len(d):
|
||||
n, kind = struct.unpack('>I4s', d[pos:pos + 8])
|
||||
body = d[pos + 8:pos + 8 + n]
|
||||
if kind == b'IHDR':
|
||||
w, h, depth, ctype, _c, _f, interlace = struct.unpack('>IIBBBBB', body)
|
||||
elif kind == b'PLTE':
|
||||
palette = body
|
||||
elif kind == b'tRNS':
|
||||
trns = body
|
||||
elif kind == b'IDAT':
|
||||
idat += body
|
||||
pos += 12 + n
|
||||
assert depth in (8, 16) and interlace == 0, path + ': only 8/16-bit non-interlaced PNG'
|
||||
assert depth == 8 or ctype != 3, path + ': 16-bit palette PNG'
|
||||
# a 16-bit sample is filtered byte-wise as two bytes; its high byte is kept below
|
||||
channels = {0: 1, 2: 3, 3: 1, 4: 2, 6: 4}[ctype] * (depth // 8)
|
||||
raw = zlib.decompress(idat)
|
||||
stride = w * channels
|
||||
rows = []
|
||||
prev = bytearray(stride)
|
||||
p = 0
|
||||
for _ in range(h):
|
||||
f = raw[p]
|
||||
line = bytearray(raw[p + 1:p + 1 + stride])
|
||||
p += 1 + stride
|
||||
for i in range(stride):
|
||||
a = line[i - channels] if i >= channels else 0
|
||||
b = prev[i]
|
||||
c = prev[i - channels] if i >= channels else 0
|
||||
if f == 1:
|
||||
line[i] = (line[i] + a) & 0xFF
|
||||
elif f == 2:
|
||||
line[i] = (line[i] + b) & 0xFF
|
||||
elif f == 3:
|
||||
line[i] = (line[i] + ((a + b) >> 1)) & 0xFF
|
||||
elif f == 4:
|
||||
pa, pb, pc = abs(b - c), abs(a - c), abs(a + b - 2 * c)
|
||||
pr = a if pa <= pb and pa <= pc else (b if pb <= pc else c)
|
||||
line[i] = (line[i] + pr) & 0xFF
|
||||
prev = line
|
||||
rows.append(line if depth == 8 else line[0::2])
|
||||
channels //= depth // 8
|
||||
out = []
|
||||
for line in rows:
|
||||
px = []
|
||||
for x in range(w):
|
||||
s = line[x * channels:(x + 1) * channels]
|
||||
if ctype == 6:
|
||||
px.append(tuple(s))
|
||||
elif ctype == 2:
|
||||
px.append((s[0], s[1], s[2], 255))
|
||||
elif ctype == 4:
|
||||
px.append((s[0], s[0], s[0], s[1]))
|
||||
elif ctype == 0:
|
||||
px.append((s[0], s[0], s[0], 255))
|
||||
else:
|
||||
i = s[0]
|
||||
a = trns[i] if trns is not None and i < len(trns) else 255
|
||||
px.append((palette[3 * i], palette[3 * i + 1], palette[3 * i + 2], a))
|
||||
out.append(px)
|
||||
return w, h, out
|
||||
|
||||
|
||||
def resample(w, h, rows, size):
|
||||
"""Box filter to size x size, colour weighted by alpha (no dark fringes)."""
|
||||
out = []
|
||||
for y in range(size):
|
||||
y0, y1 = y * h // size, max((y + 1) * h // size, y * h // size + 1)
|
||||
line = []
|
||||
for x in range(size):
|
||||
x0, x1 = x * w // size, max((x + 1) * w // size, x * w // size + 1)
|
||||
r = g = b = a = n = 0
|
||||
for yy in range(y0, y1):
|
||||
for xx in range(x0, x1):
|
||||
pr, pg, pb, pa = rows[yy][xx]
|
||||
r += pr * pa
|
||||
g += pg * pa
|
||||
b += pb * pa
|
||||
a += pa
|
||||
n += 1
|
||||
line.append((r // a, g // a, b // a, a // n) if a else (0, 0, 0, 0))
|
||||
out.append(line)
|
||||
return out
|
||||
|
||||
|
||||
def to_grey(rows, gamma=0.55):
|
||||
"""Luminance, the brightest visible pixel white and the rest lifted (gamma < 1) -- the retail
|
||||
icons are near-white shapes the button tints."""
|
||||
lum = [[(0.2126 * r + 0.7152 * g + 0.0722 * b, a) for (r, g, b, a) in line] for line in rows]
|
||||
peak = max([l for line in lum for (l, a) in line if a > 32] or [255.0])
|
||||
out = []
|
||||
for line in lum:
|
||||
out.append([(min(int(255.0 * (min(l / max(peak, 1.0), 1.0) ** gamma) + 0.5), 255),) * 3 + (a,)
|
||||
for (l, a) in line])
|
||||
return out
|
||||
|
||||
|
||||
def crop_to_content(w, h, rows, margin=0.06):
|
||||
"""The visible part (alpha > 8) as a centred square with a small margin, so the icon fills
|
||||
the quad like the retail ones."""
|
||||
xs = [x for line in rows for x, p in enumerate(line) if p[3] > 8]
|
||||
ys = [y for y, line in enumerate(rows) if any(p[3] > 8 for p in line)]
|
||||
if not xs:
|
||||
return w, h, rows
|
||||
x0, x1, y0, y1 = min(xs), max(xs) + 1, min(ys), max(ys) + 1
|
||||
side = int(max(x1 - x0, y1 - y0) * (1.0 + 2.0 * margin)) + 1
|
||||
cx, cy = (x0 + x1) // 2, (y0 + y1) // 2
|
||||
ox, oy = cx - side // 2, cy - side // 2
|
||||
empty = (0, 0, 0, 0)
|
||||
out = [[rows[y][x] if 0 <= y < h and 0 <= x < w else empty for x in range(ox, ox + side)]
|
||||
for y in range(oy, oy + side)]
|
||||
return side, side, out
|
||||
|
||||
|
||||
def tga(rows):
|
||||
"""32-bit uncompressed TGA, bottom row first, 8 alpha bits -- as the retail icons."""
|
||||
size = len(rows)
|
||||
head = struct.pack('<BBBHHBHHHHBB', 0, 0, 2, 0, 0, 0, 0, 0, size, size, 32, 8)
|
||||
body = bytearray()
|
||||
for line in reversed(rows):
|
||||
for r, g, b, a in line:
|
||||
body += bytes((b, g, r, a))
|
||||
return head + bytes(body)
|
||||
|
||||
|
||||
def vmesh_data(material_crc):
|
||||
"""One mesh, four XYZ+TEX1 vertices (FVF 0x102), six indices."""
|
||||
d = struct.pack('<IIHHHH', 1, 4, 1, len(QUAD_INDICES), 0x102, len(QUAD))
|
||||
d += struct.pack('<IHHHH', material_crc, 0, len(QUAD) - 1, len(QUAD_INDICES), 204)
|
||||
d += struct.pack('<%dH' % len(QUAD_INDICES), *QUAD_INDICES)
|
||||
for v in QUAD:
|
||||
d += struct.pack('<5f', *v)
|
||||
return d
|
||||
|
||||
|
||||
def vmesh_ref(library_crc):
|
||||
"""VMeshRef (60 bytes): the whole library, bounds and sphere of the quad."""
|
||||
return struct.pack('<IIHHHHHH10f', 60, library_crc, 0, len(QUAD), 0, len(QUAD_INDICES), 0, 1,
|
||||
QUAD_HALF, -QUAD_HALF, QUAD_HALF, -QUAD_HALF, QUAD_Z, QUAD_Z, 0.0, 0.0, QUAD_Z,
|
||||
QUAD_HALF * 1.5094)
|
||||
|
||||
|
||||
def make(png, out, name, color=False):
|
||||
w, h, rows = read_png(png)
|
||||
w, h, rows = crop_to_content(w, h, rows)
|
||||
mips = []
|
||||
for size in (TEX_SIZE, TEX_SIZE // 2, TEX_SIZE // 4):
|
||||
img = resample(w, h, rows, size)
|
||||
mips.append(tga(img if color else to_grey(img)))
|
||||
material = 'UI_REM_' + name
|
||||
texture = 'REM_' + name + '.tga'
|
||||
library = 'rem_icon_' + name.lower() + '.lod0.vms'
|
||||
N = utf.Node
|
||||
root = N('\\', children=[
|
||||
N('Exporter Version', data=b'REM make_icon_3db\0'),
|
||||
N('VMeshLibrary', children=[N(library, children=[N('VMeshData', data=vmesh_data(flcrc.crc(material)))])]),
|
||||
N('VMeshPart', children=[N('VMeshRef', data=vmesh_ref(flcrc.crc(library)))]),
|
||||
N('Material library', children=[
|
||||
N('Material count', data=struct.pack('<I', 1)),
|
||||
N(material, children=[N('Type', data=b'DcDtOcOt\0'), N('Dt_name', data=texture.encode() + b'\0'),
|
||||
N('Dt_flags', data=struct.pack('<I', 64))])]),
|
||||
N('Texture library', children=[
|
||||
N(texture, children=[N('MIP%d' % i, data=m) for i, m in enumerate(mips)])]),
|
||||
])
|
||||
utf.write(out, root)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = [a for a in sys.argv[1:] if not a.startswith('--')]
|
||||
if len(args) != 3:
|
||||
print(__doc__)
|
||||
sys.exit(1)
|
||||
make(args[0], args[1], args[2], color='--color' in sys.argv)
|
||||
print('wrote', args[1])
|
||||
@@ -0,0 +1,94 @@
|
||||
"""A coloured Freelancer interface image (.3db) from a PNG -- for pictures in the REM windows
|
||||
(statistics medals, banners, portraits), shown with a StaticControl like the inventory's item
|
||||
icons. Unlike make_icon_3db.py the colours stay and the quad keeps the picture's aspect.
|
||||
|
||||
python tools/make_image_3db.py <in.png> <out.3db> <name> [--size 256] [--nocrop] [--crop x0,y0,x1,y1]
|
||||
|
||||
The transparent border is cut off (unless --nocrop), the picture is stretched into a square
|
||||
texture of --size pixels (three mips) and drawn on a quad of the picture's aspect, the longer
|
||||
side as long as the retail icon quad. --crop cuts that pixel rectangle out first (a banner
|
||||
strip from a square picture). <name> gives the material "UI_REMIMG_<name>", the texture
|
||||
"REMIMG_<name>.tga" and the mesh library "rem_img_<name>.lod0.vms".
|
||||
"""
|
||||
import os
|
||||
import struct
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import flcrc # noqa: E402
|
||||
import make_icon_3db as icon # noqa: E402
|
||||
import utf # noqa: E402
|
||||
|
||||
HALF = icon.QUAD_HALF
|
||||
Z = icon.QUAD_Z
|
||||
INDICES = [0, 1, 2, 1, 3, 2]
|
||||
|
||||
|
||||
def crop(w, h, rows):
|
||||
xs = [x for line in rows for x, p in enumerate(line) if p[3] > 8]
|
||||
ys = [y for y, line in enumerate(rows) if any(p[3] > 8 for p in line)]
|
||||
if not xs:
|
||||
return w, h, rows
|
||||
x0, x1, y0, y1 = min(xs), max(xs) + 1, min(ys), max(ys) + 1
|
||||
return x1 - x0, y1 - y0, [line[x0:x1] for line in rows[y0:y1]]
|
||||
|
||||
|
||||
def make(png, out, name, size=256, do_crop=True, rect=None):
|
||||
w, h, rows = icon.read_png(png)
|
||||
if rect is not None:
|
||||
x0, y0, x1, y1 = rect
|
||||
w, h, rows = x1 - x0, y1 - y0, [line[x0:x1] for line in rows[y0:y1]]
|
||||
if do_crop:
|
||||
w, h, rows = crop(w, h, rows)
|
||||
hx, hy = (HALF, HALF * h / w) if w >= h else (HALF * w / h, HALF)
|
||||
quad = [(-hx, hy, Z, 0.0, 1.0), (-hx, -hy, Z, 0.0, 0.0), (hx, hy, Z, 1.0, 1.0), (hx, -hy, Z, 1.0, 0.0)]
|
||||
mips = []
|
||||
s = size
|
||||
for _ in range(3):
|
||||
mips.append(icon.tga(icon.resample(w, h, rows, s)))
|
||||
s = max(4, s // 2)
|
||||
material = 'UI_REMIMG_' + name
|
||||
texture = 'REMIMG_' + name + '.tga'
|
||||
library = 'rem_img_' + name.lower() + '.lod0.vms'
|
||||
data = struct.pack('<IIHHHH', 1, 4, 1, len(INDICES), 0x102, len(quad))
|
||||
data += struct.pack('<IHHHH', flcrc.crc(material), 0, len(quad) - 1, len(INDICES), 204)
|
||||
data += struct.pack('<%dH' % len(INDICES), *INDICES)
|
||||
for v in quad:
|
||||
data += struct.pack('<5f', *v)
|
||||
ref = struct.pack('<IIHHHHHH10f', 60, flcrc.crc(library), 0, len(quad), 0, len(INDICES), 0, 1,
|
||||
hx, -hx, hy, -hy, Z, Z, 0.0, 0.0, Z, max(hx, hy) * 1.5094)
|
||||
N = utf.Node
|
||||
root = N('\\', children=[
|
||||
N('Exporter Version', data=b'REM make_image_3db\0'),
|
||||
N('VMeshLibrary', children=[N(library, children=[N('VMeshData', data=data)])]),
|
||||
N('VMeshPart', children=[N('VMeshRef', data=ref)]),
|
||||
N('Material library', children=[
|
||||
N('Material count', data=struct.pack('<I', 1)),
|
||||
N(material, children=[N('Type', data=b'DcDtOcOt\0'), N('Dt_name', data=texture.encode() + b'\0'),
|
||||
N('Dt_flags', data=struct.pack('<I', 64))])]),
|
||||
N('Texture library', children=[
|
||||
N(texture, children=[N('MIP%d' % i, data=m) for i, m in enumerate(mips)])]),
|
||||
])
|
||||
os.makedirs(os.path.dirname(os.path.abspath(out)), exist_ok=True)
|
||||
utf.write(out, root)
|
||||
return w, h
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
argv = sys.argv[1:]
|
||||
size = 256
|
||||
if '--size' in argv:
|
||||
i = argv.index('--size')
|
||||
size = int(argv[i + 1])
|
||||
del argv[i:i + 2]
|
||||
rect = None
|
||||
if '--crop' in argv:
|
||||
i = argv.index('--crop')
|
||||
rect = tuple(int(v) for v in argv[i + 1].split(','))
|
||||
del argv[i:i + 2]
|
||||
args = [a for a in argv if not a.startswith('--')]
|
||||
if len(args) != 3:
|
||||
print(__doc__)
|
||||
sys.exit(1)
|
||||
w, h = make(args[0], args[1], args[2], size, '--nocrop' not in argv, rect)
|
||||
print('wrote', args[1], '(%dx%d)' % (w, h))
|
||||
@@ -0,0 +1,151 @@
|
||||
"""Freelancer UTF container (.3db, .cmp, .mat, .txm): read, edit and write.
|
||||
|
||||
A UTF file is a tree of named nodes; a directory node has children, a leaf node carries bytes.
|
||||
Header (0x38 bytes): "UTF ", version 0x101, tree offset/size, node size 44, string table
|
||||
offset/allocated/used, data offset. Node (44 bytes): next sibling offset, name offset, flags
|
||||
(0x10 directory, 0x80 leaf), 0, child offset (directory) or data offset (leaf), allocated,
|
||||
size, size again, three FILETIME words.
|
||||
|
||||
python tools/utf.py dump file.3db
|
||||
"""
|
||||
import struct
|
||||
import sys
|
||||
|
||||
|
||||
class Node:
|
||||
def __init__(self, name, data=None, children=None):
|
||||
self.name = name
|
||||
self.data = data # bytes for a leaf
|
||||
self.children = children # list for a directory
|
||||
|
||||
@property
|
||||
def is_dir(self):
|
||||
return self.children is not None
|
||||
|
||||
def find(self, path):
|
||||
"""The node at a '\\'-separated path below this one (case-insensitive), or None."""
|
||||
node = self
|
||||
for part in [p for p in path.replace('/', '\\').split('\\') if p]:
|
||||
if not node.is_dir:
|
||||
return None
|
||||
nxt = None
|
||||
for c in node.children:
|
||||
if c.name.lower() == part.lower():
|
||||
nxt = c
|
||||
break
|
||||
if nxt is None:
|
||||
return None
|
||||
node = nxt
|
||||
return node
|
||||
|
||||
def walk(self, prefix=''):
|
||||
path = prefix + '\\' + self.name if prefix else self.name
|
||||
yield path, self
|
||||
if self.is_dir:
|
||||
for c in self.children:
|
||||
yield from c.walk(path)
|
||||
|
||||
|
||||
def read(path):
|
||||
raw = open(path, 'rb').read()
|
||||
sig, ver, tree_ofs, tree_size, _res, node_size, str_ofs, str_alloc, str_used, data_ofs = \
|
||||
struct.unpack_from('<4sIIIIIIIII', raw, 0)
|
||||
if sig != b'UTF ':
|
||||
raise ValueError(path + ': not a UTF file')
|
||||
strings = raw[str_ofs:str_ofs + str_alloc]
|
||||
|
||||
def name_at(o):
|
||||
end = strings.index(b'\0', o)
|
||||
return strings[o:end].decode('latin-1')
|
||||
|
||||
def node_at(o):
|
||||
nxt, name_o, flags, _z, ptr, alloc, size, _size2 = struct.unpack_from('<8I', raw, tree_ofs + o)
|
||||
name = name_at(name_o)
|
||||
if flags & 0x10:
|
||||
children = []
|
||||
c = ptr
|
||||
while True:
|
||||
child, c_next = node_at(c)
|
||||
children.append(child)
|
||||
if c_next == 0:
|
||||
break
|
||||
c = c_next
|
||||
return Node(name, children=children), nxt
|
||||
return Node(name, data=raw[data_ofs + ptr:data_ofs + ptr + size]), nxt
|
||||
|
||||
root, _ = node_at(0)
|
||||
return root
|
||||
|
||||
|
||||
def write(path, root):
|
||||
"""Writes the tree: nodes in depth-first order, names deduplicated, data 4-byte aligned."""
|
||||
nodes = []
|
||||
for _, n in root.walk():
|
||||
nodes.append(n)
|
||||
index = {id(n): i for i, n in enumerate(nodes)}
|
||||
|
||||
names = bytearray(b'\0')
|
||||
name_ofs = {}
|
||||
for n in nodes:
|
||||
if n.name not in name_ofs:
|
||||
name_ofs[n.name] = len(names)
|
||||
names += n.name.encode('latin-1') + b'\0'
|
||||
while len(names) % 4:
|
||||
names += b'\0'
|
||||
|
||||
data = bytearray()
|
||||
data_ofs = {}
|
||||
for n in nodes:
|
||||
if not n.is_dir:
|
||||
data_ofs[id(n)] = len(data)
|
||||
data += n.data
|
||||
while len(data) % 4:
|
||||
data += b'\0'
|
||||
|
||||
# the next sibling of each node
|
||||
sibling = {}
|
||||
for n in nodes:
|
||||
if n.is_dir:
|
||||
for a, b in zip(n.children, n.children[1:]):
|
||||
sibling[id(a)] = b
|
||||
|
||||
node_size = 44
|
||||
tree = bytearray()
|
||||
for n in nodes:
|
||||
nxt = sibling.get(id(n))
|
||||
nxt_o = index[id(nxt)] * node_size if nxt is not None else 0
|
||||
if n.is_dir:
|
||||
child_o = index[id(n.children[0])] * node_size if n.children else 0
|
||||
tree += struct.pack('<8I3I', nxt_o, name_ofs[n.name], 0x10, 0, child_o, 0, 0, 0, 0, 0, 0)
|
||||
else:
|
||||
size = len(n.data)
|
||||
alloc = (size + 3) & ~3
|
||||
tree += struct.pack('<8I3I', nxt_o, name_ofs[n.name], 0x80, 0, data_ofs[id(n)], alloc, size, size,
|
||||
0, 0, 0)
|
||||
|
||||
header_size = 0x38
|
||||
tree_ofs = header_size
|
||||
str_ofs = tree_ofs + len(tree)
|
||||
dat_ofs = str_ofs + len(names)
|
||||
header = struct.pack('<4sIIIIIIIIIII', b'UTF ', 0x101, tree_ofs, len(tree), 0, node_size, str_ofs, len(names),
|
||||
len(names), dat_ofs, 0, 0) + b'\0' * 8
|
||||
open(path, 'wb').write(header + tree + names + data)
|
||||
|
||||
|
||||
def dump(path):
|
||||
root = read(path)
|
||||
for p, n in root.walk():
|
||||
if n.is_dir:
|
||||
print(p + '\\')
|
||||
else:
|
||||
preview = n.data[:24].hex(' ')
|
||||
print('%s [%d] %s' % (p, len(n.data), preview))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) >= 3 and sys.argv[1] == 'dump':
|
||||
for f in sys.argv[2:]:
|
||||
print('==', f)
|
||||
dump(f)
|
||||
else:
|
||||
print(__doc__)
|
||||