Add the Omnitool, drone adjustments (#6948)
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
using System.Linq;
|
||||||
using Content.Shared.Drone;
|
using Content.Shared.Drone;
|
||||||
using Content.Server.Drone.Components;
|
using Content.Server.Drone.Components;
|
||||||
using Content.Shared.Actions;
|
using Content.Shared.Actions;
|
||||||
@@ -88,9 +89,16 @@ namespace Content.Server.Drone
|
|||||||
{
|
{
|
||||||
var body = Comp<SharedBodyComponent>(uid); //There's no way something can have a mobstate but not a body...
|
var body = Comp<SharedBodyComponent>(uid); //There's no way something can have a mobstate but not a body...
|
||||||
|
|
||||||
foreach (var item in drone.ToolUids)
|
foreach (var item in drone.ToolUids.Select((value, i) => ( value, i )))
|
||||||
{
|
{
|
||||||
EntityManager.DeleteEntity(item);
|
if (_tagSystem.HasTag(item.value, "Drone"))
|
||||||
|
{
|
||||||
|
RemComp<UnremoveableComponent>(item.value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
EntityManager.DeleteEntity(item.value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
body.Gib();
|
body.Gib();
|
||||||
EntityManager.DeleteEntity(uid);
|
EntityManager.DeleteEntity(uid);
|
||||||
@@ -111,12 +119,12 @@ namespace Content.Server.Drone
|
|||||||
if (TryComp<HandsComponent>(uid, out var hands) && hands.Count >= drone.Tools.Count)
|
if (TryComp<HandsComponent>(uid, out var hands) && hands.Count >= drone.Tools.Count)
|
||||||
{
|
{
|
||||||
foreach (var entry in drone.Tools)
|
foreach (var entry in drone.Tools)
|
||||||
{
|
{
|
||||||
var item = EntityManager.SpawnEntity(entry.PrototypeId, spawnCoord);
|
var item = EntityManager.SpawnEntity(entry.PrototypeId, spawnCoord);
|
||||||
AddComp<UnremoveableComponent>(item);
|
AddComp<UnremoveableComponent>(item);
|
||||||
hands.PutInHand(item);
|
hands.PutInHand(item);
|
||||||
drone.ToolUids.Add(item);
|
drone.ToolUids.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TryComp<ActionsComponent>(uid, out var actions) && TryComp<UnpoweredFlashlightComponent>(uid, out var flashlight))
|
if (TryComp<ActionsComponent>(uid, out var actions) && TryComp<UnpoweredFlashlightComponent>(uid, out var flashlight))
|
||||||
|
|||||||
@@ -5,6 +5,6 @@
|
|||||||
hand 1: LeftHandDrone
|
hand 1: LeftHandDrone
|
||||||
hand 2: LeftHandDrone
|
hand 2: LeftHandDrone
|
||||||
hand 3: LeftHandDrone
|
hand 3: LeftHandDrone
|
||||||
hand 4: RightHandDrone
|
hand 4: LeftHandDrone
|
||||||
hand 5: RightHandDrone
|
hand 5: RightHandDrone
|
||||||
hand 6: RightHandDrone
|
hand 6: RightHandDrone
|
||||||
|
|||||||
@@ -102,3 +102,12 @@
|
|||||||
- id: BoxSurvival
|
- id: BoxSurvival
|
||||||
- id: AcousticGuitarInstrument
|
- id: AcousticGuitarInstrument
|
||||||
- id: SaxophoneInstrument
|
- id: SaxophoneInstrument
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
abstract: true
|
||||||
|
parent: ClothingBackpackSatchel
|
||||||
|
id: ClothingBackpackSatchelDrone
|
||||||
|
components:
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Drone
|
||||||
|
|||||||
@@ -72,8 +72,9 @@
|
|||||||
components:
|
components:
|
||||||
- type: Drone
|
- type: Drone
|
||||||
tools:
|
tools:
|
||||||
- id: PowerDrill
|
- id: ClothingBackpackSatchelDrone
|
||||||
- id: JawsOfLife
|
- id: trayScanner
|
||||||
|
- id: Omnitool
|
||||||
- id: WelderExperimental
|
- id: WelderExperimental
|
||||||
- type: NameIdentifier
|
- type: NameIdentifier
|
||||||
group: Drone
|
group: Drone
|
||||||
|
|||||||
@@ -276,3 +276,63 @@
|
|||||||
Blunt: 10
|
Blunt: 10
|
||||||
- type: Item
|
- type: Item
|
||||||
sprite: Objects/Tools/shovel.rsi
|
sprite: Objects/Tools/shovel.rsi
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
name: omnitool
|
||||||
|
parent: BaseItem
|
||||||
|
id: Omnitool
|
||||||
|
description: A drone's best friend.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-screwing
|
||||||
|
- type: Item
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
size: 20
|
||||||
|
- type: TilePrying
|
||||||
|
- type: SignalLinker
|
||||||
|
- type: Tool
|
||||||
|
qualities:
|
||||||
|
- Screwing
|
||||||
|
speed: 1.2 # Kept for future adjustments. Currently 1.2x for balance
|
||||||
|
- type: MultipleTool
|
||||||
|
statusShowBehavior: true
|
||||||
|
entries:
|
||||||
|
- behavior: Screwing
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-screwing
|
||||||
|
useSound:
|
||||||
|
path: /Audio/Items/drill_use.ogg
|
||||||
|
changeSound:
|
||||||
|
path: /Audio/Items/change_drill.ogg
|
||||||
|
- behavior: Prying
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-prying
|
||||||
|
useSound:
|
||||||
|
path: /Audio/Items/jaws_pry.ogg
|
||||||
|
changeSound:
|
||||||
|
path: /Audio/Items/change_drill.ogg
|
||||||
|
- behavior: Anchoring
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-wrenching
|
||||||
|
useSound:
|
||||||
|
path: /Audio/Items/ratchet.ogg
|
||||||
|
changeSound:
|
||||||
|
path: /Audio/Items/change_drill.ogg
|
||||||
|
- behavior: Cutting
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-snipping
|
||||||
|
useSound:
|
||||||
|
path: /Audio/Items/jaws_cut.ogg
|
||||||
|
changeSound:
|
||||||
|
path: /Audio/Items/change_drill.ogg
|
||||||
|
- behavior: Pulsing
|
||||||
|
sprite:
|
||||||
|
sprite: Objects/Tools/omnitool.rsi
|
||||||
|
state: omnitool-pulsing
|
||||||
|
changeSound:
|
||||||
|
path: /Audio/Items/change_drill.ogg
|
||||||
|
|||||||
@@ -318,3 +318,6 @@
|
|||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: Write
|
id: Write
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: Drone
|
||||||
|
|||||||
26
Resources/Textures/Objects/Tools/omnitool.rsi/meta.json
Normal file
26
Resources/Textures/Objects/Tools/omnitool.rsi/meta.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-NC-SA-3.0",
|
||||||
|
"copyright": "Taken from https://github.com/goonstation/goonstation at commit 68aa9d134c07ed345755ff4cc0e11eae531f624e",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "omnitool-prying"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "omnitool-screwing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "omnitool-pulsing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "omnitool-snipping"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "omnitool-wrenching"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 694 B |
Binary file not shown.
|
After Width: | Height: | Size: 710 B |
Binary file not shown.
|
After Width: | Height: | Size: 662 B |
Binary file not shown.
|
After Width: | Height: | Size: 757 B |
Binary file not shown.
|
After Width: | Height: | Size: 680 B |
Reference in New Issue
Block a user