generated from krampus/template-godot4
Revised alarm/relay interactions
This commit is contained in:
parent
3031daae39
commit
a6a411b060
@ -230,6 +230,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, -1.96701e-08, -0.45)
|
|||||||
[node name="GunkAlarm" parent="PulseNetWall" instance=ExtResource("10_l8xa5")]
|
[node name="GunkAlarm" parent="PulseNetWall" instance=ExtResource("10_l8xa5")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.37114e-08, -1)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.37114e-08, -1)
|
||||||
|
|
||||||
|
[node name="GunkRelay7" parent="PulseNetWall" instance=ExtResource("9_d4a3d")]
|
||||||
|
|
||||||
[connection signal="destroyed" from="TriggerNetWall/GunkTrigger" to="TriggerNetWall/GunkRelay" method="trigger"]
|
[connection signal="destroyed" from="TriggerNetWall/GunkTrigger" to="TriggerNetWall/GunkRelay" method="trigger"]
|
||||||
[connection signal="triggered" from="TriggerNetWall/GunkRelay" to="TriggerNetWall/GunkRelay2" method="trigger"]
|
[connection signal="triggered" from="TriggerNetWall/GunkRelay" to="TriggerNetWall/GunkRelay2" method="trigger"]
|
||||||
[connection signal="triggered" from="TriggerNetWall/GunkRelay2" to="TriggerNetWall/GunkRelay3" method="trigger"]
|
[connection signal="triggered" from="TriggerNetWall/GunkRelay2" to="TriggerNetWall/GunkRelay3" method="trigger"]
|
||||||
@ -245,3 +247,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.37114e-08, -1)
|
|||||||
[connection signal="pulsed" from="PulseNetWall/GunkRelay4" to="PulseNetWall/GunkRelay6" method="pulse"]
|
[connection signal="pulsed" from="PulseNetWall/GunkRelay4" to="PulseNetWall/GunkRelay6" method="pulse"]
|
||||||
[connection signal="pulsed" from="PulseNetWall/GunkRelay5" to="PulseNetWall/GunkAlarm" method="pulse"]
|
[connection signal="pulsed" from="PulseNetWall/GunkRelay5" to="PulseNetWall/GunkAlarm" method="pulse"]
|
||||||
[connection signal="pulsed" from="PulseNetWall/GunkRelay6" to="PulseNetWall/GunkAlarm" method="pulse"]
|
[connection signal="pulsed" from="PulseNetWall/GunkRelay6" to="PulseNetWall/GunkAlarm" method="pulse"]
|
||||||
|
[connection signal="pulsed" from="PulseNetWall/GunkRelay7" to="TriggerNetWall/GunkRelay" method="pulse"]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
class_name GunkAlarm extends GunkNode
|
class_name GunkAlarm extends SignalNode
|
||||||
## Raises the grunk alert when triggered.
|
## Raises the grunk alert when triggered.
|
||||||
|
|
||||||
const ALERT_DELTA := 1
|
const ALERT_DELTA := 1
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
class_name GunkRelay extends GunkNode
|
@tool
|
||||||
|
class_name GunkRelay extends SignalNode
|
||||||
## Gunk node that rebroadcasts triggers to the network after a delay.
|
## Gunk node that rebroadcasts triggers to the network after a delay.
|
||||||
|
|
||||||
## Emitted when `trigger` is called, after a short delay.
|
## Emitted when `trigger` is called, after a short delay.
|
||||||
@ -7,6 +8,9 @@ signal triggered
|
|||||||
## Emitted when `pulse` is called, after a short delay.
|
## Emitted when `pulse` is called, after a short delay.
|
||||||
signal pulsed
|
signal pulsed
|
||||||
|
|
||||||
|
@export var quick_connect_to: SignalNode:
|
||||||
|
set = _editor_connect
|
||||||
|
|
||||||
var _busy := false
|
var _busy := false
|
||||||
|
|
||||||
@onready var animation_player: AnimationPlayer = %AnimationPlayer
|
@onready var animation_player: AnimationPlayer = %AnimationPlayer
|
||||||
@ -60,3 +64,9 @@ static func find_path(
|
|||||||
if path:
|
if path:
|
||||||
return [current] + path
|
return [current] + path
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
func _editor_connect(node: SignalNode) -> void:
|
||||||
|
self.connect("triggered", node.trigger, CONNECT_PERSIST)
|
||||||
|
self.connect("pulsed", node.pulse, CONNECT_PERSIST)
|
||||||
|
self.notify_property_list_changed()
|
||||||
|
@ -46,33 +46,6 @@ tracks/1/keys = {
|
|||||||
"values": [Color(1, 0, 0, 1)]
|
"values": [Color(1, 0, 0, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_rdv5j"]
|
|
||||||
resource_name = "trigger"
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("MeshInstance3D:mesh:material:emission_energy_multiplier")
|
|
||||||
tracks/0/interp = 2
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.166667, 1),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [0.0, 2.0, 0.0]
|
|
||||||
}
|
|
||||||
tracks/1/type = "value"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("MeshInstance3D:mesh:material:emission")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 0,
|
|
||||||
"values": [Color(1, 0, 0, 1)]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_nfkbq"]
|
[sub_resource type="Animation" id="Animation_nfkbq"]
|
||||||
resource_name = "pulse"
|
resource_name = "pulse"
|
||||||
step = 0.1
|
step = 0.1
|
||||||
@ -101,6 +74,33 @@ tracks/1/keys = {
|
|||||||
"values": [Color(0.25098, 0.878431, 1, 1)]
|
"values": [Color(0.25098, 0.878431, 1, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rdv5j"]
|
||||||
|
resource_name = "trigger"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("MeshInstance3D:mesh:material:emission_energy_multiplier")
|
||||||
|
tracks/0/interp = 2
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.166667, 1),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0, 2.0, 0.0]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("MeshInstance3D:mesh:material:emission")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 0, 0, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ipm58"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ipm58"]
|
||||||
_data = {
|
_data = {
|
||||||
&"RESET": SubResource("Animation_ipm58"),
|
&"RESET": SubResource("Animation_ipm58"),
|
||||||
|
10
src/world/mechanics/signal_node.gd
Normal file
10
src/world/mechanics/signal_node.gd
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
class_name SignalNode extends GunkNode
|
||||||
|
## Specialized gunk node capable of handling standardized signals
|
||||||
|
|
||||||
|
|
||||||
|
func trigger() -> void:
|
||||||
|
pass # Implemented by derived type
|
||||||
|
|
||||||
|
|
||||||
|
func pulse() -> void:
|
||||||
|
pass # Implemented by derived type
|
1
src/world/mechanics/signal_node.gd.uid
Normal file
1
src/world/mechanics/signal_node.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://dfavgd5w66stl
|
@ -17,14 +17,16 @@
|
|||||||
- [ ] #mechanics
|
- [ ] #mechanics
|
||||||
- [x] [[grunk alert]]
|
- [x] [[grunk alert]]
|
||||||
- [x] [[alarm]]
|
- [x] [[alarm]]
|
||||||
- [ ] [[watchdog]]
|
- [x] [[trigger]]
|
||||||
|
- [x] [[heart]]
|
||||||
|
- [x] [[relay]]
|
||||||
- [ ] [[tripwire]]
|
- [ ] [[tripwire]]
|
||||||
- [ ] [[looker]]
|
- [ ] [[looker]]
|
||||||
- [ ] [[listener]]
|
- [ ] [[listener]]
|
||||||
- [ ] [[grunk beast]]
|
- [ ] [[grunk beast]]
|
||||||
- [ ] Design
|
- [ ] Design
|
||||||
- [ ] Model
|
- [x] Model
|
||||||
- [ ] Animation
|
- [x] Animation
|
||||||
- [ ] Controller
|
- [ ] Controller
|
||||||
- [ ] Nav/logic?
|
- [ ] Nav/logic?
|
||||||
- [ ] [[level]]
|
- [ ] [[level]]
|
||||||
|
@ -2,6 +2,8 @@ Does nothing on its own, but increases the [[grunk alert]] when activated by a c
|
|||||||
|
|
||||||
Will activate if the player tries to remove with the spray beam. Can be safely deactivated & harvested with the [[toothbrush]].
|
Will activate if the player tries to remove with the spray beam. Can be safely deactivated & harvested with the [[toothbrush]].
|
||||||
|
|
||||||
|
Will be triggered automatically if it stops getting a pulse signal from a [[heart]]. If it doesn't get a pulse in the first place, it won't trigger. Therefore we can make puzzles without pulses by simply not including a [[heart]] in the network.
|
||||||
|
|
||||||
For flavor, maybe screeches or something when activated?
|
For flavor, maybe screeches or something when activated?
|
||||||
|
|
||||||
tags: #mechanics
|
tags: #mechanics
|
3
vault/elements/heart.md
Normal file
3
vault/elements/heart.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Dead-man switch. Emits a pulse every few seconds which travels through the relay network to alarms. If an alarm stops receiving a pulse, it triggers automatically.
|
||||||
|
|
||||||
|
tags: #mechanics
|
1
vault/elements/manual.md
Normal file
1
vault/elements/manual.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
Instead of a tutorial proper, I want the main source of information to be a shitty manual you carry around with you at all times. I like the idea of it being equipment, so the game isn't paused while you read it.
|
5
vault/elements/relay.md
Normal file
5
vault/elements/relay.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Rebroadcasts trigger and pulse signals. The backbone "connection" of grunk component networks.
|
||||||
|
|
||||||
|
Visually these should light up when passing along a signal, with red to indicate trigger signals & cyan to indicate pulse.
|
||||||
|
|
||||||
|
tags: #mechanics
|
3
vault/elements/trigger.md
Normal file
3
vault/elements/trigger.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
The most basic grunk mechanic. Emits a trigger signal when destroyed, setting off any connected [alarms](alarm).
|
||||||
|
|
||||||
|
tags: #mechanics
|
@ -1,3 +0,0 @@
|
|||||||
Dead-man switch. Triggers a connected [[alarm]] when the player interrupts the [[grunk]] connection to the alarm.
|
|
||||||
|
|
||||||
tags: #mechanics
|
|
7
vault/manual content.md
Normal file
7
vault/manual content.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
tags: #lore
|
||||||
|
|
||||||
|
# _GRUNKER'S COMPANION_
|
||||||
|
_A guide to grunkin' for the rest of us!_
|
||||||
|
|
||||||
|
### 1. What the Grunk!?
|
||||||
|
(NOTE: basic loredump)
|
Loading…
x
Reference in New Issue
Block a user