mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 08:45:33 +00:00
Trenchbroom support for health and destruction
This commit is contained in:
parent
e23d337a16
commit
823886b4ce
19 changed files with 2064 additions and 1398 deletions
BIN
3D/MapModels/actor_emitter_floor.glb
Normal file
BIN
3D/MapModels/actor_emitter_floor.glb
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -1232,6 +1232,33 @@
|
|||
( 80 -444 60 ) ( 81 -444 60 ) ( 80 -444 61 ) __TB_empty [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
( 80 -444 60 ) ( 80 -444 61 ) ( 80 -443 60 ) __TB_empty [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
// brush 135
|
||||
{
|
||||
( 252 480 -16 ) ( 252 481 -16 ) ( 252 480 -15 ) Floors/Floor103 [ 0 -1 0 0 ] [ 0 0 -1 -8 ] 90 1 1
|
||||
( 248 480 -16 ) ( 248 480 -15 ) ( 249 480 -16 ) Floors/Floor103 [ 1 0 0 0 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 248 480 -16 ) ( 249 480 -16 ) ( 248 481 -16 ) Floors/Floor103 [ -1 0 0 0 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 256 504 -12 ) ( 256 505 -12 ) ( 257 504 -12 ) Floors/Floor103 [ 1 0 0 0 ] [ 0 -1 0 0 ] 90 1 1
|
||||
( 256 632 -8 ) ( 257 632 -8 ) ( 256 632 -7 ) Floors/Floor103 [ -1 0 0 0 ] [ 0 0 -1 -8 ] 0 1 1
|
||||
( 256 504 -8 ) ( 256 504 -7 ) ( 256 505 -8 ) Floors/Floor103 [ 0 1 0 0 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
}
|
||||
// brush 136
|
||||
{
|
||||
( 184 480 -16 ) ( 184 481 -16 ) ( 184 480 -15 ) Floors/Floor103 [ 0 -1 0 0 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 180 532 -16 ) ( 180 532 -15 ) ( 181 532 -16 ) Floors/Floor103 [ 1 0 0 4 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 180 480 -16 ) ( 181 480 -16 ) ( 180 481 -16 ) Floors/Floor103 [ -1 0 0 -4 ] [ 0 -1 0 0 ] 270 1 1
|
||||
( 188 504 -12 ) ( 188 505 -12 ) ( 189 504 -12 ) Floors/Floor103 [ 1 0 0 4 ] [ 0 -1 0 0 ] 180 1 1
|
||||
( 188 632 -8 ) ( 189 632 -8 ) ( 188 632 -7 ) Floors/Floor103 [ -1 0 0 -4 ] [ 0 0 -1 -8 ] 90 1 1
|
||||
( 188 504 -8 ) ( 188 504 -7 ) ( 188 505 -8 ) Floors/Floor103 [ 0 1 0 0 ] [ 0 0 -1 -8 ] 270 1 1
|
||||
}
|
||||
// brush 137
|
||||
{
|
||||
( 188 480 -16 ) ( 188 481 -16 ) ( 188 480 -15 ) Floors/Floor103 [ 0 -1 0 0 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 244 628 -16 ) ( 244 628 -15 ) ( 245 628 -16 ) Floors/Floor103 [ 1 0 0 4 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 244 480 -16 ) ( 245 480 -16 ) ( 244 481 -16 ) Floors/Floor103 [ -1 0 0 -4 ] [ 0 -1 0 0 ] 0 1 1
|
||||
( 252 504 -12 ) ( 252 505 -12 ) ( 253 504 -12 ) Floors/Floor103 [ 1 0 0 4 ] [ 0 -1 0 0 ] 270 1 1
|
||||
( 252 632 -8 ) ( 253 632 -8 ) ( 252 632 -7 ) Floors/Floor103 [ -1 0 0 -4 ] [ 0 0 -1 -8 ] 180 1 1
|
||||
( 252 504 -8 ) ( 252 504 -7 ) ( 252 505 -8 ) Floors/Floor103 [ 0 1 0 0 ] [ 0 0 -1 -8 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 1
|
||||
{
|
||||
|
|
@ -2792,7 +2819,7 @@
|
|||
// entity 162
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "192 388 -16"
|
||||
"origin" "208 396 -16"
|
||||
}
|
||||
// entity 163
|
||||
{
|
||||
|
|
@ -3823,6 +3850,99 @@
|
|||
}
|
||||
// entity 325
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "200 424 -20"
|
||||
}
|
||||
// entity 326
|
||||
{
|
||||
"classname" "actor_box_yellow"
|
||||
"origin" "200 424 -12"
|
||||
}
|
||||
// entity 327
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "216 416 -20"
|
||||
}
|
||||
// entity 328
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "216 416 -12"
|
||||
}
|
||||
// entity 329
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "232 444 -20"
|
||||
}
|
||||
// entity 330
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "232 444 -12"
|
||||
}
|
||||
// entity 331
|
||||
{
|
||||
"classname" "actor_forcefield_1"
|
||||
"origin" "280 476 -8"
|
||||
"angles" "0 90 0"
|
||||
"targetname" "danmaku_room_1"
|
||||
"startenabled" "0"
|
||||
}
|
||||
// entity 332
|
||||
{
|
||||
"classname" "actor_forcefield_1"
|
||||
"origin" "168 476 -8"
|
||||
"angles" "0 90 0"
|
||||
"targetname" "danmaku_room_1"
|
||||
"startenabled" "1"
|
||||
}
|
||||
// entity 333
|
||||
{
|
||||
"classname" "actor_controlpad"
|
||||
"origin" "220 480 -12"
|
||||
"angles" "0 90 0"
|
||||
"target" "danmaku_room_1"
|
||||
"activationtype" "Toggle"
|
||||
}
|
||||
// entity 334
|
||||
{
|
||||
"classname" "trigger_area"
|
||||
"activationtype" "Toggle"
|
||||
"target" "danmaku_room_1"
|
||||
// brush 0
|
||||
{
|
||||
( 264 484 -24 ) ( 264 485 -24 ) ( 264 484 -23 ) special/trigger [ 0 -1 0 -12 ] [ 0 0 -1 0 ] 90 1 1
|
||||
( 264 484 -24 ) ( 264 484 -23 ) ( 265 484 -24 ) special/trigger [ 1 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
||||
( 264 484 -24 ) ( 265 484 -24 ) ( 264 485 -24 ) special/trigger [ -1 0 0 0 ] [ 0 -1 0 -12 ] 90 1 1
|
||||
( 296 500 -12 ) ( 296 501 -12 ) ( 297 500 -12 ) special/trigger [ 1 0 0 0 ] [ 0 -1 0 -12 ] 0 1 1
|
||||
( 296 500 -20 ) ( 297 500 -20 ) ( 296 500 -19 ) special/trigger [ -1 0 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
||||
( 296 500 -20 ) ( 296 500 -19 ) ( 296 501 -20 ) special/trigger [ 0 1 0 12 ] [ 0 0 -1 0 ] 90 1 1
|
||||
}
|
||||
}
|
||||
// entity 335
|
||||
{
|
||||
"classname" "actor_teleporter"
|
||||
"origin" "284 416 -23"
|
||||
"targetname" "debug_tele_1"
|
||||
"enabled" "1"
|
||||
}
|
||||
// entity 336
|
||||
{
|
||||
"classname" "actor_teleporter"
|
||||
"origin" "436 -228 17"
|
||||
"target" "debug_tele_1"
|
||||
"enabled" "1"
|
||||
"targetname" "debug_tele_source"
|
||||
}
|
||||
// entity 337
|
||||
{
|
||||
"classname" "actor_emitter_floor"
|
||||
"origin" "220 596 -20"
|
||||
"indestructible" "1"
|
||||
"targetname" "danmaku_room_1"
|
||||
"script_path" "res://Resources/BulletScripts/Danmaku_Room_1.tres"
|
||||
"emit_on_start" "0"
|
||||
}
|
||||
// entity 338
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_layer"
|
||||
"_tb_name" "Solid"
|
||||
|
|
@ -5552,7 +5672,7 @@
|
|||
( -168 536 -56 ) ( -168 536 -55 ) ( -168 535 -56 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 0 408 -24 ) ( -1 408 -24 ) ( 0 408 -23 ) __TB_empty [ -1 0 0 0 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 128 536 -32 ) ( 127 536 -32 ) ( 128 535 -32 ) __TB_empty [ -1 0 0 0 ] [ 0 1 0 8 ] 90 1 1
|
||||
( 0 408 -8 ) ( 0 407 -8 ) ( -1 408 -8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 270 1 1
|
||||
( 0 408 8 ) ( 0 407 8 ) ( -1 408 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 128 416 -56 ) ( 128 416 -55 ) ( 127 416 -56 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 112 536 -56 ) ( 112 535 -56 ) ( 112 536 -55 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
|
|
@ -5567,12 +5687,12 @@
|
|||
}
|
||||
// brush 193
|
||||
{
|
||||
( 112 600 -56 ) ( 112 600 -55 ) ( 112 599 -56 ) __TB_empty [ 0 -1 0 24 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 280 472 -24 ) ( 279 472 -24 ) ( 280 472 -23 ) __TB_empty [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 408 600 -32 ) ( 407 600 -32 ) ( 408 599 -32 ) __TB_empty [ -1 0 0 -8 ] [ 0 1 0 -24 ] 180 1 1
|
||||
( 280 472 -8 ) ( 280 471 -8 ) ( 279 472 -8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 90 1 1
|
||||
( 408 480 -56 ) ( 408 480 -55 ) ( 407 480 -56 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 180 1 -1
|
||||
( 312 600 -56 ) ( 312 599 -56 ) ( 312 600 -55 ) __TB_empty [ 0 -1 0 24 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 112 816 -56 ) ( 112 816 -55 ) ( 112 815 -56 ) __TB_empty [ 0 -1 0 16 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 280 688 -24 ) ( 279 688 -24 ) ( 280 688 -23 ) __TB_empty [ -1 0 0 -8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 408 816 -32 ) ( 407 816 -32 ) ( 408 815 -32 ) __TB_empty [ -1 0 0 -8 ] [ 0 1 0 -16 ] 90 1 1
|
||||
( 280 688 -8 ) ( 280 687 -8 ) ( 279 688 -8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 408 696 -56 ) ( 408 696 -55 ) ( 407 696 -56 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 90 1 -1
|
||||
( 312 816 -56 ) ( 312 815 -56 ) ( 312 816 -55 ) __TB_empty [ 0 -1 0 16 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 194
|
||||
{
|
||||
|
|
@ -5589,7 +5709,7 @@
|
|||
( 200 288 8 ) ( 199 288 8 ) ( 200 288 9 ) Walls/Wall0 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 328 544 -32 ) ( 327 544 -32 ) ( 328 543 -32 ) Walls/Wall0 [ -1 0 0 -8 ] [ 0 1 0 0 ] 270 1 1
|
||||
( 200 416 -8 ) ( 200 415 -8 ) ( 199 416 -8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 328 480 -24 ) ( 328 480 -23 ) ( 327 480 -24 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 270 1 -1
|
||||
( 328 696 -24 ) ( 328 696 -23 ) ( 327 696 -24 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 90 1 -1
|
||||
( 320 544 -24 ) ( 320 543 -24 ) ( 320 544 -23 ) Manual/Black [ 0 -1 0 0 ] [ 0 0 1 0 ] 270 1 -1
|
||||
}
|
||||
// brush 196
|
||||
|
|
@ -5795,7 +5915,7 @@
|
|||
( -240 536 -56 ) ( -240 536 -55 ) ( -240 535 -56 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( -80 408 -24 ) ( -81 408 -24 ) ( -80 408 -23 ) __TB_empty [ -1 0 0 -16 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 48 536 -32 ) ( 47 536 -32 ) ( 48 535 -32 ) __TB_empty [ -1 0 0 -16 ] [ 0 1 0 8 ] 270 1 1
|
||||
( -80 408 -8 ) ( -80 407 -8 ) ( -81 408 -8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 90 1 1
|
||||
( -80 408 8 ) ( -80 407 8 ) ( -81 408 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 0 1 1
|
||||
( 48 416 -56 ) ( 48 416 -55 ) ( 47 416 -56 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 270 1 -1
|
||||
( -168 536 -56 ) ( -168 535 -56 ) ( -168 536 -55 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
|
|
@ -6384,283 +6504,392 @@
|
|||
( 32 144 16 ) ( 33 144 16 ) ( 32 144 17 ) special/clip [ 1 -5.053215498074303e-16 0 0 ] [ 0 0 1 0 ] 0 1 -1
|
||||
( 272 24 48 ) ( 272 23 48 ) ( 272 24 49 ) special/clip [ -5.053215498074303e-16 -1 0 -8 ] [ 0 0 1 0 ] 270 1 -1
|
||||
}
|
||||
// brush 284
|
||||
{
|
||||
( 248 576 -56 ) ( 248 576 -55 ) ( 248 575 -56 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 280 560 -56 ) ( 279 560 -56 ) ( 280 560 -55 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 280 576 -32 ) ( 279 576 -32 ) ( 280 575 -32 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 152 448 -24 ) ( 152 447 -24 ) ( 151 448 -24 ) Floors/Floor103 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 280 624 -56 ) ( 280 624 -55 ) ( 279 624 -56 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 312 576 -56 ) ( 312 575 -56 ) ( 312 576 -55 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// entity 326
|
||||
// brush 285
|
||||
{
|
||||
( 184 600 -56 ) ( 184 600 -55 ) ( 184 599 -56 ) __TB_empty [ 0 -1 0 24 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 152 472 -24 ) ( 151 472 -24 ) ( 152 472 -23 ) __TB_empty [ -1 0 0 24 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 280 600 -32 ) ( 279 600 -32 ) ( 280 599 -32 ) __TB_empty [ -1 0 0 24 ] [ 0 1 0 -24 ] 270 1 1
|
||||
( 152 472 8 ) ( 152 471 8 ) ( 151 472 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 90 1 1
|
||||
( 280 480 -56 ) ( 280 480 -55 ) ( 279 480 -56 ) Walls/Wall0 [ -1 0 0 8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 264 600 -56 ) ( 264 599 -56 ) ( 264 600 -55 ) Various/Various14 [ 0 -1 0 8 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
}
|
||||
// brush 286
|
||||
{
|
||||
( 296 600 -56 ) ( 296 600 -55 ) ( 296 599 -56 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 264 472 -24 ) ( 263 472 -24 ) ( 264 472 -23 ) __TB_empty [ -1 0 0 8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 392 600 -32 ) ( 391 600 -32 ) ( 392 599 -32 ) __TB_empty [ -1 0 0 8 ] [ 0 1 0 8 ] 90 1 1
|
||||
( 264 472 8 ) ( 264 471 8 ) ( 263 472 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 270 1 1
|
||||
( 392 480 -56 ) ( 392 480 -55 ) ( 391 480 -56 ) Walls/Wall0 [ -1 0 0 8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 312 600 -56 ) ( 312 599 -56 ) ( 312 600 -55 ) Various/Various14 [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 287
|
||||
{
|
||||
( 264 408 -24 ) ( 264 408 -23 ) ( 264 407 -24 ) __TB_empty [ 0 -1 0 24 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 264 472 -24 ) ( 263 472 -24 ) ( 264 472 -23 ) __TB_empty [ -1 0 0 8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 392 536 -32 ) ( 391 536 -32 ) ( 392 535 -32 ) __TB_empty [ -1 0 0 8 ] [ 0 1 0 -24 ] 270 1 1
|
||||
( 264 408 -24 ) ( 264 407 -24 ) ( 263 408 -24 ) Various/Various16 [ -1 0 0 8 ] [ 0 1 0 -8 ] 90 1 1
|
||||
( 392 480 -56 ) ( 392 480 -55 ) ( 391 480 -56 ) __TB_empty [ -1 0 0 8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 296 536 -56 ) ( 296 535 -56 ) ( 296 536 -55 ) __TB_empty [ 0 -1 0 24 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 288
|
||||
{
|
||||
( 152 408 -24 ) ( 152 408 -23 ) ( 152 407 -24 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 152 472 -24 ) ( 151 472 -24 ) ( 152 472 -23 ) __TB_empty [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 280 536 -32 ) ( 279 536 -32 ) ( 280 535 -32 ) __TB_empty [ -1 0 0 -8 ] [ 0 1 0 8 ] 270 1 1
|
||||
( 152 408 -24 ) ( 152 407 -24 ) ( 151 408 -24 ) Various/Various16 [ -1 0 0 8 ] [ 0 1 0 8 ] 90 1 1
|
||||
( 280 480 -56 ) ( 280 480 -55 ) ( 279 480 -56 ) __TB_empty [ -1 0 0 -8 ] [ 0 0 1 -8 ] 270 1 -1
|
||||
( 184 536 -56 ) ( 184 535 -56 ) ( 184 536 -55 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 289
|
||||
{
|
||||
( 112 600 -56 ) ( 112 600 -55 ) ( 112 599 -56 ) __TB_empty [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 104 472 -24 ) ( 103 472 -24 ) ( 104 472 -23 ) __TB_empty [ -1 0 0 8 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 232 600 -32 ) ( 231 600 -32 ) ( 232 599 -32 ) __TB_empty [ -1 0 0 8 ] [ 0 1 0 8 ] 0 1 1
|
||||
( 104 472 8 ) ( 104 471 8 ) ( 103 472 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 0 1 1
|
||||
( 232 480 -56 ) ( 232 480 -55 ) ( 231 480 -56 ) Walls/Wall0 [ -1 0 0 8 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 152 600 -56 ) ( 152 599 -56 ) ( 152 600 -55 ) Various/Various14 [ 0 -1 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
}
|
||||
// brush 290
|
||||
{
|
||||
( 112 592 8 ) ( 112 592 9 ) ( 112 591 8 ) Walls/Wall0 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 0 480 8 ) ( -1 480 8 ) ( 0 480 9 ) Various/Various14 [ -1 0 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 128 720 -32 ) ( 127 720 -32 ) ( 128 719 -32 ) Walls/Wall0 [ -1 0 0 0 ] [ 0 1 0 16 ] 90 1 1
|
||||
( 0 592 8 ) ( 0 591 8 ) ( -1 592 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 128 688 -24 ) ( 128 688 -23 ) ( 127 688 -24 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 0 1 -1
|
||||
( 120 720 -24 ) ( 120 719 -24 ) ( 120 720 -23 ) Walls/Wall0 [ 0 -1 0 0 ] [ 0 0 1 0 ] 180 1 -1
|
||||
}
|
||||
// brush 291
|
||||
{
|
||||
( 184 488 8 ) ( 184 488 9 ) ( 184 487 8 ) Walls/Wall0 [ 0 -1 0 8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 72 312 8 ) ( 71 312 8 ) ( 72 312 9 ) Various/Various14 [ -1 0 0 8 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 200 616 -32 ) ( 199 616 -32 ) ( 200 615 -32 ) Walls/Wall0 [ -1 0 0 8 ] [ 0 1 0 -8 ] 90 1 1
|
||||
( 72 488 8 ) ( 72 487 8 ) ( 71 488 8 ) Manual/Black [ -1 0 0 0 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 200 472 -24 ) ( 200 472 -23 ) ( 199 472 -24 ) Manual/Black [ -1 0 0 0 ] [ 0 0 1 0 ] 180 1 -1
|
||||
( 192 616 -24 ) ( 192 615 -24 ) ( 192 616 -23 ) Walls/Wall0 [ 0 -1 0 8 ] [ 0 0 1 0 ] 180 1 -1
|
||||
}
|
||||
// brush 292
|
||||
{
|
||||
( 120 448 -24 ) ( 120 448 -23 ) ( 120 447 -24 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 152 480 -24 ) ( 151 480 -24 ) ( 152 480 -23 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 280 576 -32 ) ( 279 576 -32 ) ( 280 575 -32 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 152 448 -24 ) ( 152 447 -24 ) ( 151 448 -24 ) Floors/Floor103 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 280 560 -56 ) ( 280 560 -55 ) ( 279 560 -56 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 312 576 -56 ) ( 312 575 -56 ) ( 312 576 -55 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 293
|
||||
{
|
||||
( 120 448 -24 ) ( 120 448 -23 ) ( 120 447 -24 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 280 624 -56 ) ( 279 624 -56 ) ( 280 624 -55 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 280 576 -32 ) ( 279 576 -32 ) ( 280 575 -32 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 152 448 -24 ) ( 152 447 -24 ) ( 151 448 -24 ) Floors/Floor103 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 280 688 -56 ) ( 280 688 -55 ) ( 279 688 -56 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 312 576 -56 ) ( 312 575 -56 ) ( 312 576 -55 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 294
|
||||
{
|
||||
( 120 448 -24 ) ( 120 448 -23 ) ( 120 447 -24 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
( 280 560 -56 ) ( 279 560 -56 ) ( 280 560 -55 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 280 576 -32 ) ( 279 576 -32 ) ( 280 575 -32 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 152 448 -24 ) ( 152 447 -24 ) ( 151 448 -24 ) Floors/Floor103 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 280 624 -56 ) ( 280 624 -55 ) ( 279 624 -56 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 184 448 -24 ) ( 184 447 -24 ) ( 184 448 -23 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
}
|
||||
// brush 295
|
||||
{
|
||||
( 184 448 -24 ) ( 184 448 -23 ) ( 184 447 -24 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 280 560 -56 ) ( 279 560 -56 ) ( 280 560 -55 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 180 1 -1
|
||||
( 280 576 -32 ) ( 279 576 -32 ) ( 280 575 -32 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 152 448 -24 ) ( 152 447 -24 ) ( 151 448 -24 ) Floors/Floor228 [ -1 0 0 -8 ] [ 0 1 0 0 ] 180 1 1
|
||||
( 280 624 -56 ) ( 280 624 -55 ) ( 279 624 -56 ) Floors/Floor278 [ -1 0 0 -8 ] [ 0 0 1 -8 ] 90 1 -1
|
||||
( 248 576 -56 ) ( 248 575 -56 ) ( 248 576 -55 ) Floors/Floor278 [ 0 -1 0 0 ] [ 0 0 1 -8 ] 0 1 -1
|
||||
}
|
||||
}
|
||||
// entity 339
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "172 -96 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 327
|
||||
// entity 340
|
||||
{
|
||||
"classname" "actor_box_blue"
|
||||
"origin" "-80 -96 28"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 328
|
||||
// entity 341
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "-80 -88 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 329
|
||||
// entity 342
|
||||
{
|
||||
"classname" "actor_terminal"
|
||||
"origin" "-60 -152 28"
|
||||
"angle" "90"
|
||||
"timeline" "computer_factory_3"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 330
|
||||
// entity 343
|
||||
{
|
||||
"classname" "actor_ac_unit"
|
||||
"origin" "-32 -156 24"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 331
|
||||
// entity 344
|
||||
{
|
||||
"classname" "actor_table"
|
||||
"origin" "-56 -152 20"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 332
|
||||
// entity 345
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "-72 -116 20"
|
||||
"angles" "0 -30 0"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 333
|
||||
// entity 346
|
||||
{
|
||||
"classname" "actor_table"
|
||||
"origin" "-8 -92 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 334
|
||||
// entity 347
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "-84 -152 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 335
|
||||
// entity 348
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "-76 -152 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 336
|
||||
// entity 349
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "-80 -104 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 337
|
||||
// entity 350
|
||||
{
|
||||
"classname" "actor_tank"
|
||||
"origin" "168 -544 64"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 338
|
||||
// entity 351
|
||||
{
|
||||
"classname" "actor_tank"
|
||||
"origin" "168 -576 64"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 339
|
||||
// entity 352
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "160 -600 60"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 340
|
||||
// entity 353
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "160 -616 60"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 341
|
||||
// entity 354
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "164 -632 60"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 342
|
||||
// entity 355
|
||||
{
|
||||
"classname" "actor_box_blue"
|
||||
"origin" "164 -632 68"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 343
|
||||
// entity 356
|
||||
{
|
||||
"classname" "actor_box_wood"
|
||||
"origin" "276 -192 20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 344
|
||||
// entity 357
|
||||
{
|
||||
"classname" "actor_elevator_1"
|
||||
"origin" "216 -376 15"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 345
|
||||
// entity 358
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-80 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 346
|
||||
// entity 359
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-64 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 347
|
||||
// entity 360
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-48 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 348
|
||||
// entity 361
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-32 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 349
|
||||
// entity 362
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-16 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 350
|
||||
// entity 363
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "0 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 351
|
||||
// entity 364
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "16 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 352
|
||||
// entity 365
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "32 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 353
|
||||
// entity 366
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "48 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 354
|
||||
// entity 367
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "64 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 355
|
||||
// entity 368
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "80 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 356
|
||||
// entity 369
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "96 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 357
|
||||
// entity 370
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "112 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 358
|
||||
// entity 371
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "128 -48 -16"
|
||||
"angle" "270"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 359
|
||||
// entity 372
|
||||
{
|
||||
"classname" "actor_tube_corner"
|
||||
"origin" "144 -48 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 360
|
||||
// entity 373
|
||||
{
|
||||
"classname" "actor_tank"
|
||||
"origin" "-216 -32 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 361
|
||||
// entity 374
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-200 -32 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 362
|
||||
// entity 375
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-184 -32 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 363
|
||||
// entity 376
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-152 -32 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 364
|
||||
// entity 377
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "-252 -8 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 365
|
||||
// entity 378
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "-264 -24 -20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 366
|
||||
// entity 379
|
||||
{
|
||||
"classname" "actor_box_red"
|
||||
"origin" "-264 -24 -12"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 367
|
||||
// entity 380
|
||||
{
|
||||
"classname" "actor_box_green"
|
||||
"origin" "-264 -8 -20"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 368
|
||||
// entity 381
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -6679,7 +6908,7 @@
|
|||
( -248 -64 0 ) ( -248 -64 1 ) ( -248 -63 0 ) special/clip [ -8.269460797427576e-16 1 0 0 ] [ 0 0 -1 -8 ] 270 1 1
|
||||
}
|
||||
}
|
||||
// entity 369
|
||||
// entity 382
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_group"
|
||||
|
|
@ -6697,122 +6926,122 @@
|
|||
( -104 -208 48 ) ( -104 -208 49 ) ( -104 -207 48 ) Manual/Blue_Panel_Wall_Thin [ 0 1 0 8 ] [ 0 0 -1 -16 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 370
|
||||
// entity 383
|
||||
{
|
||||
"classname" "actor_capacitor_mini"
|
||||
"origin" "-184 -8 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 371
|
||||
// entity 384
|
||||
{
|
||||
"classname" "actor_tank_large"
|
||||
"origin" "-304 -24 -8"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 372
|
||||
// entity 385
|
||||
{
|
||||
"classname" "actor_chest_1"
|
||||
"origin" "-252 -24 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 373
|
||||
// entity 386
|
||||
{
|
||||
"classname" "actor_chest_1"
|
||||
"origin" "40 -200 24"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 374
|
||||
// entity 387
|
||||
{
|
||||
"classname" "actor_elevator_1"
|
||||
"origin" "-168 112 -25"
|
||||
"targetname" "elevator_2"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 375
|
||||
// entity 388
|
||||
{
|
||||
"classname" "actor_terminal_big"
|
||||
"origin" "92 -248 28"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 376
|
||||
// entity 389
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "180 -260 24"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 377
|
||||
// entity 390
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "176 -300 24"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 378
|
||||
// entity 391
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "188 -120 24"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 379
|
||||
// entity 392
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "-256 -36 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 380
|
||||
// entity 393
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "-300 56 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 381
|
||||
// entity 394
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "-300 68 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 382
|
||||
// entity 395
|
||||
{
|
||||
"classname" "actor_barrel_1"
|
||||
"origin" "-292 64 -16"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 383
|
||||
// entity 396
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-168 -32 -16"
|
||||
"angle" "90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 384
|
||||
// entity 397
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-128 48 -32"
|
||||
"angles" "0 0 90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 385
|
||||
// entity 398
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-128 48 -48"
|
||||
"angles" "0 0 90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 386
|
||||
// entity 399
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-128 64 -36"
|
||||
"angles" "0 0 90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 387
|
||||
// entity 400
|
||||
{
|
||||
"classname" "actor_tube_straight"
|
||||
"origin" "-128 64 -52"
|
||||
"angles" "0 0 90"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 388
|
||||
// entity 401
|
||||
{
|
||||
"classname" "actor_capacitor_mini"
|
||||
"origin" "8 320 -16"
|
||||
|
|
@ -6820,7 +7049,7 @@
|
|||
"activationtype" "Open"
|
||||
"_tb_layer" "3"
|
||||
}
|
||||
// entity 389
|
||||
// entity 402
|
||||
{
|
||||
"classname" "func_group"
|
||||
"_tb_type" "_tb_layer"
|
||||
|
|
@ -6829,7 +7058,7 @@
|
|||
"_tb_layer_sort_index" "1"
|
||||
"_tb_layer_hidden" "1"
|
||||
}
|
||||
// entity 390
|
||||
// entity 403
|
||||
{
|
||||
"classname" "func_shroud"
|
||||
"targetname" "secret_door_1"
|
||||
|
|
@ -6845,7 +7074,7 @@
|
|||
( 0 480 24 ) ( 0 480 25 ) ( 0 481 24 ) Manual/Black [ 0 1 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
||||
}
|
||||
}
|
||||
// entity 391
|
||||
// entity 404
|
||||
{
|
||||
"classname" "func_shroud"
|
||||
"targetname" "secret_door_1"
|
||||
|
|
@ -6861,7 +7090,7 @@
|
|||
( -84 376 24 ) ( -84 376 25 ) ( -84 377 24 ) Manual/Black [ 0 1 0 0 ] [ 0 0 -1 0 ] 90 1 1
|
||||
}
|
||||
}
|
||||
// entity 392
|
||||
// entity 405
|
||||
{
|
||||
"classname" "func_shroud"
|
||||
"targetname" "door5"
|
||||
|
|
@ -6877,7 +7106,7 @@
|
|||
( 344 -112 64 ) ( 344 -112 65 ) ( 344 -111 64 ) Manual/Black [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 1 1
|
||||
}
|
||||
}
|
||||
// entity 393
|
||||
// entity 406
|
||||
{
|
||||
"classname" "func_shroud"
|
||||
"targetname" "secret_door_1"
|
||||
|
|
@ -6893,7 +7122,7 @@
|
|||
( -84 320 24 ) ( -84 320 25 ) ( -84 321 24 ) Manual/Black [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 1 1
|
||||
}
|
||||
}
|
||||
// entity 394
|
||||
// entity 407
|
||||
{
|
||||
"classname" "func_shroud"
|
||||
"targetname" "secret_door_2"
|
||||
|
|
|
|||
|
|
@ -32,15 +32,15 @@ shape = SubResource("BoxShape3D_hsg1w")
|
|||
|
||||
[node name="blockbench_export" parent="." instance=ExtResource("1_03sp0")]
|
||||
|
||||
[node name="Node" type="Area3D" parent="."]
|
||||
[node name="Gravity" type="Area3D" parent="."]
|
||||
collision_layer = 0
|
||||
collision_mask = 17
|
||||
script = ExtResource("5_jb4do")
|
||||
FallingSpeed = -2.0
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Node"]
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Gravity"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.024291992, -0.19599915, 0.013088226)
|
||||
shape = SubResource("BoxShape3D_6tetb")
|
||||
|
||||
[connection signal="body_entered" from="Node" to="Node" method="OnBodyEntered"]
|
||||
[connection signal="body_exited" from="Node" to="Node" method="OnBodyExited"]
|
||||
[connection signal="body_entered" from="Gravity" to="Gravity" method="OnBodyEntered"]
|
||||
[connection signal="body_exited" from="Gravity" to="Gravity" method="OnBodyExited"]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://d4ek8xjuh6y11"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://d4ek8xjuh6y11"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpibtd73awwp7" path="res://Scripts/Actors/ScriptableBulletsEmitter3D.cs" id="1_dtfaj"]
|
||||
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="2_dtfaj"]
|
||||
[ext_resource type="PackedScene" uid="uid://sy821kigcoqx" path="res://3D/BlockbenchModels/FloorEmitter/Floor_Emitter.gltf" id="3_ro7iq"]
|
||||
[ext_resource type="Script" uid="uid://bf5f2phitdqw8" path="res://Scripts/Actors/BulletSpawner3D.cs" id="4_0cjnq"]
|
||||
|
||||
|
|
@ -13,6 +14,8 @@ collision_layer = 64
|
|||
collision_mask = 0
|
||||
script = ExtResource("1_dtfaj")
|
||||
EmitOnStart = true
|
||||
Health = 10.0
|
||||
DamageResistances = Array[ExtResource("2_dtfaj")]([])
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00549316, 0.116073, -0.000488281)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://djm3rsc7ul5jb"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://djm3rsc7ul5jb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpibtd73awwp7" path="res://Scripts/Actors/ScriptableBulletsEmitter3D.cs" id="1_0vfab"]
|
||||
[ext_resource type="PackedScene" uid="uid://dmnqbva5dt6nl" path="res://3D/BlockbenchModels/Tubes/Tube_Emitter.gltf" id="1_i2hpd"]
|
||||
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="2_xohn2"]
|
||||
[ext_resource type="Script" uid="uid://bf5f2phitdqw8" path="res://Scripts/Actors/BulletSpawner3D.cs" id="3_xohn2"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
|
||||
|
|
@ -9,6 +10,8 @@ size = Vector3(0.69390893, 0.868431, 0.871704)
|
|||
|
||||
[node name="TubeEmitter" type="StaticBody3D" groups=["Permeable", "Solid"]]
|
||||
script = ExtResource("1_0vfab")
|
||||
Indestructible = true
|
||||
DamageResistances = Array[ExtResource("2_xohn2")]([])
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15304595, 0.00475672, 0.0043335)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://yath5bvxo3cn"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://yath5bvxo3cn"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dpibtd73awwp7" path="res://Scripts/Actors/ScriptableBulletsEmitter3D.cs" id="1_3n1ol"]
|
||||
[ext_resource type="Script" uid="uid://ddsqqfx1usc3j" path="res://Scripts/Resources/DamageResistance.cs" id="2_eoje4"]
|
||||
[ext_resource type="PackedScene" uid="uid://lwpt32xplrjw" path="res://3D/BlockbenchModels/WallEmitter/Wall_Emitter.gltf" id="3_3n1ol"]
|
||||
[ext_resource type="Script" uid="uid://bf5f2phitdqw8" path="res://Scripts/Actors/BulletSpawner3D.cs" id="3_g6b3n"]
|
||||
|
||||
|
|
@ -13,6 +14,8 @@ collision_layer = 64
|
|||
collision_mask = 0
|
||||
script = ExtResource("1_3n1ol")
|
||||
EmitOnStart = true
|
||||
Health = 10.0
|
||||
DamageResistances = Array[ExtResource("2_eoje4")]([])
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00549316, 0.116073, -0.000488281)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,14 @@
|
|||
[resource]
|
||||
script = ExtResource("3_ql3xv")
|
||||
classname = "Destroyable"
|
||||
description = "Destroyable actor with the ability to send a signal on death"
|
||||
description = "Destroyable actor with the ability to send a signal on death and specify health"
|
||||
base_classes = Array[Resource]([ExtResource("2_h557v"), ExtResource("3_njkdc")])
|
||||
class_properties = {
|
||||
"health": 10.0,
|
||||
"indestructible": false
|
||||
}
|
||||
class_property_descriptions = {
|
||||
"health": "How many hitpoints it has",
|
||||
"indestructible": "Is it invulnerable?"
|
||||
}
|
||||
metadata/_custom_type_script = "uid://blhmvtghs553u"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=5 format=3 uid="uid://b4cf1i0x46ej4"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://0u5qbphjq045" path="res://3D/TrenchBroom/EntityDefinitions/base/emitter_base.tres" id="1_pc1hj"]
|
||||
[ext_resource type="Resource" uid="uid://dl5gtmotc4g6a" path="res://3D/TrenchBroom/EntityDefinitions/base/destroyable_base.tres" id="2_p7asn"]
|
||||
[ext_resource type="PackedScene" uid="uid://d4ek8xjuh6y11" path="res://3D/Scenes/Props/Floor_Emitter_3D.tscn" id="3_pc1hj"]
|
||||
[ext_resource type="Script" uid="uid://dkmyelig23ub5" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="4_oeoss"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("4_oeoss")
|
||||
target_map_editor = 1
|
||||
rotation_offset = Vector3(0, 180, 0)
|
||||
scene_file = ExtResource("3_pc1hj")
|
||||
apply_scale_on_map_build = false
|
||||
classname = "actor_emitter_floor"
|
||||
description = "Floor Emitter"
|
||||
base_classes = Array[Resource]([ExtResource("1_pc1hj"), ExtResource("2_p7asn")])
|
||||
class_properties = {
|
||||
"health": 5.0
|
||||
}
|
||||
meta_properties = {
|
||||
"model": "\"3D/MapModels/actor_emitter_floor.glb\"",
|
||||
"size": AABB(-4, -4, -4, 4, 4, 4)
|
||||
}
|
||||
metadata/_custom_type_script = "uid://c83r7t467hm4m"
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=4 format=3 uid="uid://oeoksvwbqvnf"]
|
||||
[gd_resource type="Resource" script_class="FuncGodotFGDModelPointClass" load_steps=5 format=3 uid="uid://oeoksvwbqvnf"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://0u5qbphjq045" path="res://3D/TrenchBroom/EntityDefinitions/base/emitter_base.tres" id="1_1ofar"]
|
||||
[ext_resource type="Resource" uid="uid://dl5gtmotc4g6a" path="res://3D/TrenchBroom/EntityDefinitions/base/destroyable_base.tres" id="2_iguyw"]
|
||||
[ext_resource type="PackedScene" uid="uid://yath5bvxo3cn" path="res://3D/Scenes/Props/Wall_Emitter_3D.tscn" id="4_wgr2p"]
|
||||
[ext_resource type="Script" uid="uid://dkmyelig23ub5" path="res://addons/func_godot/src/fgd/func_godot_fgd_model_point_class.gd" id="5_a0kra"]
|
||||
|
||||
|
|
@ -12,7 +13,10 @@ scene_file = ExtResource("4_wgr2p")
|
|||
apply_scale_on_map_build = false
|
||||
classname = "actor_emitter_wall"
|
||||
description = "Wall Emitter"
|
||||
base_classes = Array[Resource]([ExtResource("1_1ofar")])
|
||||
base_classes = Array[Resource]([ExtResource("1_1ofar"), ExtResource("2_iguyw")])
|
||||
class_properties = {
|
||||
"health": 5.0
|
||||
}
|
||||
meta_properties = {
|
||||
"model": "\"3D/MapModels/actor_emitter_wall.glb\"",
|
||||
"size": AABB(-4, -4, -4, 4, 4, 4)
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ classname = "actor_controlpad"
|
|||
description = "Control Pad"
|
||||
base_classes = Array[Resource]([ExtResource("1_5ms1a"), ExtResource("2_65tcb"), ExtResource("3_ybdcc")])
|
||||
meta_properties = {
|
||||
"model": "\"3D/MapModels/actor_controlpad.glb\"",
|
||||
"size": AABB(-4, -4, -4, 4, 4, 4)
|
||||
}
|
||||
metadata/_custom_type_script = "uid://c83r7t467hm4m"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=46 format=3 uid="uid://b700sa4be6dfa"]
|
||||
[gd_resource type="Resource" script_class="FuncGodotFGDFile" load_steps=47 format=3 uid="uid://b700sa4be6dfa"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://ia1t5p4mhom3" path="res://3D/TrenchBroom/EntityDefinitions/point/lights/light_omni.tres" id="1_7vcj1"]
|
||||
[ext_resource type="Script" uid="uid://cknmd0lgmorx2" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="1_lykim"]
|
||||
|
|
@ -45,8 +45,9 @@
|
|||
[ext_resource type="Resource" uid="uid://concvsutqjff2" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Emitter_Tube.tres" id="42_ekplg"]
|
||||
[ext_resource type="Resource" uid="uid://oeoksvwbqvnf" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Emitter_Wall.tres" id="43_d7qk0"]
|
||||
[ext_resource type="Resource" uid="uid://dd7haabidbq5s" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/actor_tank_standalone.tres" id="44_k6g2u"]
|
||||
[ext_resource type="Resource" uid="uid://b4cf1i0x46ej4" path="res://3D/TrenchBroom/EntityDefinitions/point/actors/Actor_Emitter_Floor.tres" id="45_b4ckg"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_lykim")
|
||||
entity_definitions = Array[Resource]([ExtResource("1_7vcj1"), ExtResource("2_u7uvb"), ExtResource("3_u7uvb"), ExtResource("4_1nmxk"), ExtResource("5_ljb2x"), ExtResource("6_seuvu"), ExtResource("7_fmwex"), ExtResource("8_c8m8m"), ExtResource("9_14sjf"), ExtResource("10_xik3w"), ExtResource("11_dgiqm"), ExtResource("12_1teik"), ExtResource("13_f0hti"), ExtResource("14_6ld6e"), ExtResource("15_g8j5j"), ExtResource("16_7h4of"), ExtResource("17_m3sbm"), ExtResource("18_m3sbm"), ExtResource("19_hvhb8"), ExtResource("20_3v5us"), ExtResource("21_g67cj"), ExtResource("22_iy67w"), ExtResource("23_b5lmu"), ExtResource("24_ndas4"), ExtResource("25_n7wsi"), ExtResource("26_v48k5"), ExtResource("27_ombvk"), ExtResource("28_31lma"), ExtResource("29_louv0"), ExtResource("30_wfgfu"), ExtResource("31_elv2e"), ExtResource("32_elv2e"), ExtResource("33_aawmv"), ExtResource("34_wy0ht"), ExtResource("35_3jqmy"), ExtResource("36_p5b6l"), ExtResource("37_53o7h"), ExtResource("38_mdgca"), ExtResource("39_d6b4f"), ExtResource("40_l3pck"), ExtResource("41_q8hab"), ExtResource("42_ekplg"), ExtResource("43_d7qk0"), ExtResource("44_k6g2u")])
|
||||
entity_definitions = Array[Resource]([ExtResource("1_7vcj1"), ExtResource("2_u7uvb"), ExtResource("3_u7uvb"), ExtResource("4_1nmxk"), ExtResource("5_ljb2x"), ExtResource("6_seuvu"), ExtResource("7_fmwex"), ExtResource("8_c8m8m"), ExtResource("9_14sjf"), ExtResource("10_xik3w"), ExtResource("11_dgiqm"), ExtResource("12_1teik"), ExtResource("13_f0hti"), ExtResource("14_6ld6e"), ExtResource("15_g8j5j"), ExtResource("16_7h4of"), ExtResource("17_m3sbm"), ExtResource("18_m3sbm"), ExtResource("19_hvhb8"), ExtResource("20_3v5us"), ExtResource("21_g67cj"), ExtResource("22_iy67w"), ExtResource("23_b5lmu"), ExtResource("24_ndas4"), ExtResource("25_n7wsi"), ExtResource("26_v48k5"), ExtResource("27_ombvk"), ExtResource("28_31lma"), ExtResource("29_louv0"), ExtResource("30_wfgfu"), ExtResource("31_elv2e"), ExtResource("32_elv2e"), ExtResource("33_aawmv"), ExtResource("34_wy0ht"), ExtResource("35_3jqmy"), ExtResource("36_p5b6l"), ExtResource("37_53o7h"), ExtResource("38_mdgca"), ExtResource("39_d6b4f"), ExtResource("40_l3pck"), ExtResource("41_q8hab"), ExtResource("42_ekplg"), ExtResource("43_d7qk0"), ExtResource("44_k6g2u"), ExtResource("45_b4ckg")])
|
||||
metadata/_custom_type_script = "uid://cknmd0lgmorx2"
|
||||
|
|
|
|||
|
|
@ -9,5 +9,8 @@ Have a nice day!
|
|||
ICE: Wait there's more, I found an extra hidden file...
|
||||
computer: Rant.txt\
|
||||
I'm typing this before my access is revoked, I hope this can be a warning for whoever comes next, if anyone.
|
||||
computer: We've been having budget cuts for days, ever since they brought in "that thing", of course injuries and casualties also skyrocketed but managers don't care, production and profits are going up. Better squeeze every single drop they can from their workers!
|
||||
computer: asdf
|
||||
computer: We've been having budget cuts for days, ever since they brought in "that thing", of course injuries and casualties also skyrocketed but managers don't care, production and profits are going up.
|
||||
computer: Better squeeze every single drop they can from their workers!
|
||||
computer: Don't be like me, caring too much about the job is not worth it, you are expandable and if you get hurt you won't even get any compensation, it's in the fine print.
|
||||
computer: Just do the bare minimum required for your job, there are no career advancement options.
|
||||
computer: I hear the security coming, one last thing\: I hid a stash of goods in the closet across the hall, nobody ever goes there. I stacked some boxes in front of the access button so nobody will open it. Good luck!
|
||||
|
|
|
|||
8
Dialogue/Timelines/computer_factory_3.dtl
Normal file
8
Dialogue/Timelines/computer_factory_3.dtl
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
computer: From\: HR\
|
||||
To\: Department Manager\
|
||||
Subject\: Personnel Termination\
|
||||
\
|
||||
Good morning, thanks to recent new legislation the requirement for the employment of a minimum number of safety officers was lifted, this gives us a great opportunity for restructuring our personnel budget.
|
||||
computer: We also are not required to compensate personnel for injuries, because of this our staff council decided to cut all our safety personnel effective immediately.
|
||||
computer: Please proceed with the termination procedures immediately.\
|
||||
Have a nice day.
|
||||
1
Dialogue/Timelines/computer_factory_3.dtl.uid
Normal file
1
Dialogue/Timelines/computer_factory_3.dtl.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dx8w1ejteq14k
|
||||
18
Resources/BulletScripts/Danmaku_Room_1.tres
Normal file
18
Resources/BulletScripts/Danmaku_Room_1.tres
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
[gd_resource type="Resource" script_class="BulletScript3D" load_steps=6 format=3 uid="uid://boiwvdhs2jjmf"]
|
||||
|
||||
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/3D/simple_enemy_bullet_small_3D.tres" id="1_bdx2k"]
|
||||
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="2_14tto"]
|
||||
[ext_resource type="Script" uid="uid://bxiprx5nwmpnu" path="res://Scripts/AttackPatterns/ShootingPattern3D.cs" id="3_wsvd4"]
|
||||
[ext_resource type="Script" uid="uid://w8hcpu68ssq" path="res://Scripts/Resources/BulletScripts/BulletScript3D.cs" id="4_7mmfe"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bdx2k"]
|
||||
script = ExtResource("3_wsvd4")
|
||||
BulletResource = ExtResource("1_bdx2k")
|
||||
rotationSpeed = 12.0
|
||||
UseParentRotationOffset = true
|
||||
metadata/_custom_type_script = "uid://bxiprx5nwmpnu"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("4_7mmfe")
|
||||
Patterns = Array[Object]([SubResource("Resource_bdx2k")])
|
||||
metadata/_custom_type_script = "uid://w8hcpu68ssq"
|
||||
|
|
@ -12,122 +12,147 @@ namespace Cirno.Scripts.Actors;
|
|||
[Tool]
|
||||
public partial class Destructible3D : StaticBody3D, IDestructible
|
||||
{
|
||||
[Export] public bool Indestructible { get; private set; }
|
||||
[Export] public float Health = 1f;
|
||||
|
||||
[Export] public bool Indestructible { get; protected set; }
|
||||
[Export] public float Health { get; protected set; } = 1f;
|
||||
|
||||
[Export] public PackedScene DebrisScene { get; set; }
|
||||
|
||||
|
||||
[Export] public PackedScene ExplosionParticles { get; set; }
|
||||
[Export] public BulletResource ExplosionData { get; set; }
|
||||
|
||||
|
||||
[Export] public BulletOwner BulletGroup { get; set; } = BulletOwner.None;
|
||||
[Export] public Array<DamageResistance> DamageResistances { get; set; } = [];
|
||||
|
||||
|
||||
[ExportCategory("On Death Activation")]
|
||||
[Export]
|
||||
public ActivationType ActivationType { get; private set; } = ActivationType.Toggle;
|
||||
[Export]
|
||||
public Node Target { get; private set;}
|
||||
[Export] public string TargetGroup { get; private set; }
|
||||
|
||||
public ActivationType ActivationType { get; protected set; } = ActivationType.Toggle;
|
||||
|
||||
[Export] public Node Target { get; private set; }
|
||||
[Export] public string TargetGroup { get; protected set; }
|
||||
|
||||
[Signal]
|
||||
public delegate void ExplodedEventHandler();
|
||||
|
||||
|
||||
private float _currentHealth = 0f;
|
||||
|
||||
private bool _isDestroyed = false;
|
||||
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_currentHealth = Health;
|
||||
}
|
||||
|
||||
public void _func_godot_apply_properties(Dictionary<string, string> props)
|
||||
|
||||
public virtual void _func_godot_apply_properties(Dictionary<string, Variant> props)
|
||||
{
|
||||
TargetGroup = props["target"];
|
||||
if (props.TryGetValue("activationtype", out var type))
|
||||
{
|
||||
var t = Enum.TryParse(type, true, out ActivationType activationType);
|
||||
if (t)
|
||||
{
|
||||
ActivationType = activationType;
|
||||
}
|
||||
}
|
||||
SetProperties(props);
|
||||
}
|
||||
|
||||
|
||||
protected void SetProperties(Dictionary<string, Variant> props)
|
||||
{
|
||||
if (props.TryGetValue("target", out var target))
|
||||
{
|
||||
TargetGroup = target.AsString();
|
||||
}
|
||||
|
||||
|
||||
if (props.TryGetValue("activationtype", out var type))
|
||||
{
|
||||
var stringType = type.AsString();
|
||||
var t = Enum.TryParse(stringType, true, out ActivationType activationType);
|
||||
if (t)
|
||||
{
|
||||
ActivationType = activationType;
|
||||
}
|
||||
}
|
||||
|
||||
if (props.TryGetValue("indestructible", out var indestructible))
|
||||
{
|
||||
var ind = indestructible.AsBool();
|
||||
Indestructible = ind;
|
||||
}
|
||||
|
||||
if (props.TryGetValue("health", out var health))
|
||||
{
|
||||
var h = health.AsSingle();
|
||||
Health = h;
|
||||
}
|
||||
}
|
||||
|
||||
private void Explode()
|
||||
{
|
||||
//ApplyExplosionDamage();
|
||||
EmitSignal(SignalName.Exploded, this, _currentHealth);
|
||||
ActivateOnDeath();
|
||||
CreateExplosion();
|
||||
CreateParticles();
|
||||
CreateDebris();
|
||||
|
||||
QueueFree();
|
||||
|
||||
//GameManager.Instance.RebakeNavigation();
|
||||
//GameManager.Instance.RecalculateTilemap(this.GlobalPosition);
|
||||
}
|
||||
{
|
||||
//ApplyExplosionDamage();
|
||||
EmitSignal(SignalName.Exploded, this, _currentHealth);
|
||||
ActivateOnDeath();
|
||||
CreateExplosion();
|
||||
CreateParticles();
|
||||
CreateDebris();
|
||||
|
||||
private void ActivateOnDeath()
|
||||
{
|
||||
if (Target is IActivable node)
|
||||
{
|
||||
node.Activate(ActivationType);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TargetGroup))
|
||||
{
|
||||
ActivationHelper.UseTargets(this, TargetGroup, ActivationType);
|
||||
}
|
||||
}
|
||||
QueueFree();
|
||||
|
||||
private void CreateExplosion()
|
||||
{
|
||||
if (ExplosionData == null) return;
|
||||
|
||||
var explosion = PoolingManager.Instance.SpawnBullet<Bullet3D>(ExplosionData);
|
||||
explosion.GlobalPosition = this.GlobalPosition;
|
||||
|
||||
explosion.Speed = 0;
|
||||
|
||||
explosion.Initialize(ExplosionData.MakeBullet(new Vector2(this.GlobalPosition.X, this.GlobalPosition.Y)));
|
||||
}
|
||||
//GameManager.Instance.RebakeNavigation();
|
||||
//GameManager.Instance.RecalculateTilemap(this.GlobalPosition);
|
||||
}
|
||||
|
||||
private void CreateDebris()
|
||||
{
|
||||
if (DebrisScene == null) return;
|
||||
this.CreateSibling<Destructible3D>(DebrisScene);
|
||||
}
|
||||
private void ActivateOnDeath()
|
||||
{
|
||||
if (Target is IActivable node)
|
||||
{
|
||||
node.Activate(ActivationType);
|
||||
}
|
||||
|
||||
private void CreateParticles()
|
||||
{
|
||||
if (ExplosionParticles == null) {
|
||||
return;
|
||||
}
|
||||
var particle = this.CreateSibling<GpuParticles3D>(ExplosionParticles);
|
||||
if (particle == null) return;
|
||||
if (!string.IsNullOrWhiteSpace(TargetGroup))
|
||||
{
|
||||
ActivationHelper.UseTargets(this, TargetGroup, ActivationType);
|
||||
}
|
||||
}
|
||||
|
||||
particle.Emitting = true;
|
||||
|
||||
}
|
||||
private void CreateExplosion()
|
||||
{
|
||||
if (ExplosionData == null) return;
|
||||
|
||||
var explosion = PoolingManager.Instance.SpawnBullet<Bullet3D>(ExplosionData);
|
||||
explosion.GlobalPosition = this.GlobalPosition;
|
||||
|
||||
explosion.Speed = 0;
|
||||
|
||||
explosion.Initialize(ExplosionData.MakeBullet(new Vector2(this.GlobalPosition.X, this.GlobalPosition.Y)));
|
||||
}
|
||||
|
||||
private void CreateDebris()
|
||||
{
|
||||
if (DebrisScene == null) return;
|
||||
this.CreateSibling<Destructible3D>(DebrisScene);
|
||||
}
|
||||
|
||||
private void CreateParticles()
|
||||
{
|
||||
if (ExplosionParticles == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var particle = this.CreateSibling<GpuParticles3D>(ExplosionParticles);
|
||||
if (particle == null) return;
|
||||
|
||||
particle.Emitting = true;
|
||||
}
|
||||
|
||||
|
||||
public void Hit(float damage, DamageType damageType = DamageType.Neutral)
|
||||
{
|
||||
if (_isDestroyed || Indestructible) return;
|
||||
|
||||
var dmg = DamageResistances.Aggregate(damage, (current, resistance) => current * resistance.CalculateDamage(current, damageType));
|
||||
|
||||
_currentHealth -= dmg;
|
||||
if (_currentHealth > 0) return;
|
||||
_isDestroyed = true;
|
||||
Explode();
|
||||
}
|
||||
public void Hit(float damage, DamageType damageType = DamageType.Neutral)
|
||||
{
|
||||
if (_isDestroyed || Indestructible) return;
|
||||
|
||||
public bool IsDestroyed()
|
||||
{
|
||||
return _isDestroyed;
|
||||
}
|
||||
var dmg = DamageResistances.Aggregate(damage,
|
||||
(current, resistance) => current * resistance.CalculateDamage(current, damageType));
|
||||
|
||||
_currentHealth -= dmg;
|
||||
if (_currentHealth > 0) return;
|
||||
_isDestroyed = true;
|
||||
Explode();
|
||||
}
|
||||
|
||||
public bool IsDestroyed()
|
||||
{
|
||||
return _isDestroyed;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using Cirno.Scripts.AttackPatterns;
|
||||
using System;
|
||||
using Cirno.Scripts.AttackPatterns;
|
||||
using Cirno.Scripts.Resources;
|
||||
using Cirno.Scripts.Resources.BulletScripts;
|
||||
using Godot;
|
||||
|
|
@ -7,7 +8,7 @@ using Godot.Collections;
|
|||
namespace Cirno.Scripts.Actors;
|
||||
|
||||
[Tool]
|
||||
public partial class ScriptableBulletsEmitter3D : Node3D, IActivable, IScriptHost3D
|
||||
public partial class ScriptableBulletsEmitter3D : Destructible3D, IActivable, IScriptHost3D
|
||||
{
|
||||
public Node3D ParentObject => this;
|
||||
|
||||
|
|
@ -21,6 +22,13 @@ public partial class ScriptableBulletsEmitter3D : Node3D, IActivable, IScriptHos
|
|||
|
||||
[Export]
|
||||
public bool EmitOnStart { get; set; } = false;
|
||||
|
||||
// [Export] public bool Indestructible { get; private set; } = false;
|
||||
// [Export] public float Health = 1f;
|
||||
//
|
||||
// [Export] public BulletResource ExplosionData { get; set; }
|
||||
// [Export] public BulletOwner BulletGroup { get; set; } = BulletOwner.None;
|
||||
// [Export] public Array<DamageResistance> DamageResistances { get; set; } = [];
|
||||
|
||||
[Signal]
|
||||
public delegate void StateChangedEventHandler(bool isEmitting);
|
||||
|
|
@ -53,17 +61,26 @@ public partial class ScriptableBulletsEmitter3D : Node3D, IActivable, IScriptHos
|
|||
EmitSignal(SignalName.StateChanged, _isActive);
|
||||
}
|
||||
|
||||
public virtual void _func_godot_apply_properties(Dictionary<string, Variant> props)
|
||||
public override void _func_godot_apply_properties(Dictionary<string, Variant> props)
|
||||
{
|
||||
ActivationGroup = props["targetname"].AsString();
|
||||
|
||||
var scriptPath = props["script_path"].AsString();
|
||||
Script = GD.Load<BulletScript3D>(scriptPath);
|
||||
if (!string.IsNullOrWhiteSpace(scriptPath))
|
||||
{
|
||||
Script = GD.Load<BulletScript3D>(scriptPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
GD.PushWarning("Emitter has no script assigned");
|
||||
}
|
||||
|
||||
|
||||
EmitOnStart = props["emit_on_start"].AsBool();
|
||||
InvertSignal = props["invert_signal"].AsBool();
|
||||
//TargetFunc = props["targetfunc"];
|
||||
//TargetName = props["targetname"];
|
||||
SetProperties(props);
|
||||
}
|
||||
|
||||
public bool Activate(ActivationType activationType = ActivationType.Toggle)
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ directories/dtl_directory={
|
|||
"computer3": "res://Dialogue/Timelines/computer3.dtl",
|
||||
"computer_control_1": "res://Dialogue/Timelines/computer_control_1.dtl",
|
||||
"computer_factory_2": "res://Dialogue/Timelines/computer_factory_2.dtl",
|
||||
"computer_factory_3": "res://Dialogue/Timelines/computer_factory_3.dtl",
|
||||
"computer_goon_cave": "res://Dialogue/Timelines/computer_goon_cave.dtl",
|
||||
"computer_keycard_room": "res://Dialogue/Timelines/computer_keycard_room.dtl",
|
||||
"computer_lab_1": "res://Dialogue/Timelines/Level2/computer_lab_1.dtl",
|
||||
|
|
@ -117,7 +118,7 @@ text/letter_speed=0.01
|
|||
text/initial_text_reveal_skippable=true
|
||||
text/text_reveal_skip_delay=0.1
|
||||
text/advance_delay=0.1
|
||||
text/autoadvance_per_character_delay=0.09999999999999999
|
||||
text/autoadvance_per_character_delay=0.1
|
||||
text/autoadvance_ignored_characters_enabled=true
|
||||
audio/max_channels=4.0
|
||||
animations/join_default_length=0.5
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue