Potato battery update + potato AI (#21142)
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
@@ -71,6 +71,9 @@ namespace Content.Shared.Containers.ItemSlots
|
|||||||
[DataField("whitelist")]
|
[DataField("whitelist")]
|
||||||
public EntityWhitelist? Whitelist;
|
public EntityWhitelist? Whitelist;
|
||||||
|
|
||||||
|
[DataField("blacklist")]
|
||||||
|
public EntityWhitelist? Blacklist;
|
||||||
|
|
||||||
[DataField("insertSound")]
|
[DataField("insertSound")]
|
||||||
public SoundSpecifier InsertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg");
|
public SoundSpecifier InsertSound = new SoundPathSpecifier("/Audio/Weapons/Guns/MagIn/revolver_magin.ogg");
|
||||||
|
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ namespace Content.Shared.Containers.ItemSlots
|
|||||||
if (!swap && slot.HasItem)
|
if (!swap && slot.HasItem)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (slot.Whitelist != null && !slot.Whitelist.IsValid(usedUid))
|
if ((slot.Whitelist != null && !slot.Whitelist.IsValid(usedUid)) || (slot.Blacklist != null && slot.Blacklist.IsValid(usedUid)))
|
||||||
{
|
{
|
||||||
if (_netManager.IsClient && _timing.IsFirstTimePredicted && popup.HasValue && !string.IsNullOrWhiteSpace(slot.WhitelistFailPopup))
|
if (_netManager.IsClient && _timing.IsFirstTimePredicted && popup.HasValue && !string.IsNullOrWhiteSpace(slot.WhitelistFailPopup))
|
||||||
_popupSystem.PopupEntity(Loc.GetString(slot.WhitelistFailPopup), uid, popup.Value);
|
_popupSystem.PopupEntity(Loc.GetString(slot.WhitelistFailPopup), uid, popup.Value);
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ pai-system-role-description = Be someone's electronic pal!
|
|||||||
pai-system-role-name-syndicate = Syndicate personal ai
|
pai-system-role-name-syndicate = Syndicate personal ai
|
||||||
pai-system-role-description-syndicate = Be someone's Syndicate pal!
|
pai-system-role-description-syndicate = Be someone's Syndicate pal!
|
||||||
(Memories *not* included.)
|
(Memories *not* included.)
|
||||||
|
pai-system-role-name-potato = potato artificial intelligence
|
||||||
|
pai-system-role-description-potato = It's a toy for children. And now you live in it.
|
||||||
|
|
||||||
pai-system-wipe-device-verb-text = Remove pAI
|
pai-system-wipe-device-verb-text = Remove pAI
|
||||||
pai-system-wiped-device = The pAI was wiped from the device.
|
pai-system-wiped-device = The pAI was wiped from the device.
|
||||||
|
|||||||
@@ -556,6 +556,9 @@
|
|||||||
reagents:
|
reagents:
|
||||||
- ReagentId: JuicePotato
|
- ReagentId: JuicePotato
|
||||||
Quantity: 10
|
Quantity: 10
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- Potato
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: tomato
|
name: tomato
|
||||||
|
|||||||
@@ -80,6 +80,7 @@
|
|||||||
- state: pai-base
|
- state: pai-base
|
||||||
- state: syndicate-pai-off-overlay
|
- state: syndicate-pai-off-overlay
|
||||||
shader: unshaded
|
shader: unshaded
|
||||||
|
map: ["screen"]
|
||||||
- type: ToggleableGhostRole
|
- type: ToggleableGhostRole
|
||||||
roleName: pai-system-role-name-syndicate
|
roleName: pai-system-role-name-syndicate
|
||||||
roleDescription: pai-system-role-description-syndicate
|
roleDescription: pai-system-role-description-syndicate
|
||||||
@@ -98,6 +99,34 @@
|
|||||||
Searching: { state: syndicate-pai-searching-overlay }
|
Searching: { state: syndicate-pai-searching-overlay }
|
||||||
On: { state: syndicate-pai-on-overlay }
|
On: { state: syndicate-pai-on-overlay }
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: PersonalAI
|
||||||
|
id: PotatoAI
|
||||||
|
name: potato artificial intelligence
|
||||||
|
description: It's a potato. You forced it to be sentient, you monster.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Fun/pai.rsi
|
||||||
|
layers:
|
||||||
|
- state: potato-base
|
||||||
|
- state: potato-off-overlay
|
||||||
|
shader: unshaded
|
||||||
|
map: ["screen"]
|
||||||
|
- type: ToggleableGhostRole
|
||||||
|
roleName: pai-system-role-name-potato
|
||||||
|
roleDescription: pai-system-role-description-potato
|
||||||
|
- type: Appearance
|
||||||
|
- type: GenericVisualizer
|
||||||
|
visuals:
|
||||||
|
enum.ToggleableGhostRoleVisuals.Status:
|
||||||
|
screen:
|
||||||
|
Off: { state: potato-off-overlay }
|
||||||
|
Searching: { state: potato-searching-overlay }
|
||||||
|
On: { state: potato-on-overlay }
|
||||||
|
- type: Construction
|
||||||
|
graph: PotatoAI
|
||||||
|
node: potatoai
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: ActionPAIPlayMidi
|
id: ActionPAIPlayMidi
|
||||||
name: Play MIDI
|
name: Play MIDI
|
||||||
|
|||||||
17
Resources/Prototypes/Entities/Objects/Misc/potatoai_chip.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
- type: entity
|
||||||
|
id: PotatoAIChip
|
||||||
|
name: supercompact AI chip
|
||||||
|
parent: BaseItem
|
||||||
|
description: This high-tech AI chip requires a voltage of exactly 1.1V to function correctly.
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Misc/potatoai_chip.rsi
|
||||||
|
state: icon
|
||||||
|
- type: Item
|
||||||
|
size: 3
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- SmallAIChip
|
||||||
|
- type: Construction
|
||||||
|
graph: PotatoAIChip
|
||||||
|
node: potatoaichip
|
||||||
@@ -42,8 +42,15 @@
|
|||||||
layers:
|
layers:
|
||||||
- state: potato
|
- state: potato
|
||||||
- type: Battery
|
- type: Battery
|
||||||
maxCharge: 200
|
maxCharge: 70
|
||||||
startingCharge: 200
|
startingCharge: 70
|
||||||
|
- type: Tag
|
||||||
|
tags:
|
||||||
|
- DroneUsable
|
||||||
|
- PotatoBattery
|
||||||
|
- type: Construction
|
||||||
|
graph: PowerCellPotato
|
||||||
|
node: potatobattery
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
name: small-capacity power cell
|
name: small-capacity power cell
|
||||||
|
|||||||
@@ -116,4 +116,4 @@
|
|||||||
base:
|
base:
|
||||||
Off: { state: posibrain }
|
Off: { state: posibrain }
|
||||||
Searching: { state: posibrain-searching }
|
Searching: { state: posibrain-searching }
|
||||||
On: { state: posibrain-occupied }
|
On: { state: posibrain-occupied }
|
||||||
@@ -85,6 +85,9 @@
|
|||||||
whitelist:
|
whitelist:
|
||||||
components:
|
components:
|
||||||
- PowerCell
|
- PowerCell
|
||||||
|
blacklist:
|
||||||
|
tags:
|
||||||
|
- PotatoBattery
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: BaseItemRecharger
|
parent: BaseItemRecharger
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
- type: constructionGraph
|
||||||
|
id: PowerCellPotato
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: potatobattery
|
||||||
|
steps:
|
||||||
|
- tag: Potato
|
||||||
|
name: a potato
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Specific/Hydroponics/potato.rsi
|
||||||
|
state: produce
|
||||||
|
doAfter: 1
|
||||||
|
- material: MetalRod
|
||||||
|
amount: 2
|
||||||
|
doAfter: 1
|
||||||
|
- material: Cable
|
||||||
|
amount: 1
|
||||||
|
doAfter: 1
|
||||||
|
- node: potatobattery
|
||||||
|
entity: PowerCellPotato
|
||||||
|
|
||||||
|
- type: constructionGraph
|
||||||
|
id: PotatoAI
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: potatoai
|
||||||
|
steps:
|
||||||
|
- tag: PotatoBattery
|
||||||
|
name: a potato battery
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Power/power_cells.rsi
|
||||||
|
state: potato
|
||||||
|
doAfter: 1
|
||||||
|
- tag: SmallAIChip
|
||||||
|
name: a super-compact AI chip
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Misc/potatoai_chip.rsi
|
||||||
|
state: icon
|
||||||
|
- node: potatoai
|
||||||
|
entity: PotatoAI
|
||||||
|
|
||||||
|
- type: constructionGraph
|
||||||
|
id: PotatoAIChip
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: potatoaichip
|
||||||
|
steps:
|
||||||
|
- material: Steel
|
||||||
|
amount: 1
|
||||||
|
doAfter: 1
|
||||||
|
- material: Glass
|
||||||
|
amount: 1
|
||||||
|
doAfter: 1
|
||||||
|
- material: Cable
|
||||||
|
amount: 2
|
||||||
|
doAfter: 1
|
||||||
|
- tag: CapacitorStockPart
|
||||||
|
name: capacitor
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Misc/stock_parts.rsi
|
||||||
|
state: capacitor
|
||||||
|
- tag: CapacitorStockPart
|
||||||
|
name: capacitor
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Misc/stock_parts.rsi
|
||||||
|
state: capacitor
|
||||||
|
- node: potatoaichip
|
||||||
|
entity: PotatoAIChip
|
||||||
32
Resources/Prototypes/Recipes/Crafting/potato.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
- type: construction
|
||||||
|
name: potato battery
|
||||||
|
id: PowerCellPotato
|
||||||
|
graph: PowerCellPotato
|
||||||
|
startNode: start
|
||||||
|
targetNode: potatobattery
|
||||||
|
category: construction-category-misc
|
||||||
|
description: A truly ingenious source of power.
|
||||||
|
icon: { sprite: Objects/Power/power_cells.rsi, state: potato }
|
||||||
|
objectType: Item
|
||||||
|
|
||||||
|
- type: construction
|
||||||
|
name: potato artificial intelligence
|
||||||
|
id: PotatoAI
|
||||||
|
graph: PotatoAI
|
||||||
|
startNode: start
|
||||||
|
targetNode: potatoai
|
||||||
|
category: construction-category-misc
|
||||||
|
description: The potato happens to be the perfect power source for this chip.
|
||||||
|
icon: { sprite: Objects/Fun/pai.rsi, state: icon-potato-off }
|
||||||
|
objectType: Item
|
||||||
|
|
||||||
|
- type: construction
|
||||||
|
name: supercompact AI chip
|
||||||
|
id: PotatoAIChip
|
||||||
|
graph: PotatoAIChip
|
||||||
|
startNode: start
|
||||||
|
targetNode: potatoaichip
|
||||||
|
category: construction-category-misc
|
||||||
|
description: A masterfully(?) crafted AI chip, requiring a similarly improvised power source.
|
||||||
|
icon: { sprite: Objects/Misc/potatoai_chip.rsi, state: icon }
|
||||||
|
objectType: Item
|
||||||
@@ -839,6 +839,12 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: PlushieSharkGrey
|
id: PlushieSharkGrey
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: Potato
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: PotatoBattery
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: PowerCellSmall
|
id: PowerCellSmall
|
||||||
|
|
||||||
@@ -924,6 +930,9 @@
|
|||||||
- type: Tag
|
- type: Tag
|
||||||
id: SkeletonMotorcycleKeys
|
id: SkeletonMotorcycleKeys
|
||||||
|
|
||||||
|
- type: Tag
|
||||||
|
id: SmallAIChip
|
||||||
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
id: SmallMech
|
id: SmallMech
|
||||||
|
|
||||||
|
|||||||
BIN
Resources/Textures/Objects/Fun/pai.rsi/icon-potato-off.png
Normal file
|
After Width: | Height: | Size: 483 B |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": 1,
|
"version": 1,
|
||||||
"license": "CC-BY-SA-3.0",
|
"license": "CC-BY-SA-3.0",
|
||||||
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/9ddb8cf084e292571d4e9c79745db25befbd82fe. pai-searching-overlay heavily modified. Syndicate variants by fedKotikeD",
|
"copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/9ddb8cf084e292571d4e9c79745db25befbd82fe. pai-searching-overlay heavily modified. Syndicate variants by fedKotikeD, and potato by Doru991",
|
||||||
"size": {
|
"size": {
|
||||||
"x": 32,
|
"x": 32,
|
||||||
"y": 32
|
"y": 32
|
||||||
@@ -13,6 +13,9 @@
|
|||||||
{
|
{
|
||||||
"name": "pai-base"
|
"name": "pai-base"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "potato-base"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "pai-off-overlay"
|
"name": "pai-off-overlay"
|
||||||
},
|
},
|
||||||
@@ -57,6 +60,18 @@
|
|||||||
0.8
|
0.8
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "icon-potato-off"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "potato-off-overlay"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "potato-on-overlay"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "potato-searching-overlay"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Resources/Textures/Objects/Fun/pai.rsi/potato-base.png
Normal file
|
After Width: | Height: | Size: 476 B |
BIN
Resources/Textures/Objects/Fun/pai.rsi/potato-off-overlay.png
Normal file
|
After Width: | Height: | Size: 162 B |
BIN
Resources/Textures/Objects/Fun/pai.rsi/potato-on-overlay.png
Normal file
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 186 B |
BIN
Resources/Textures/Objects/Misc/potatoai_chip.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 235 B |
14
Resources/Textures/Objects/Misc/potatoai_chip.rsi/meta.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC-BY-SA-3.0",
|
||||||
|
"copyright": "Drawn by @Doru991 for SS14",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "icon"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"y": 32
|
"y": 32
|
||||||
},
|
},
|
||||||
"license": "CC-BY-SA-3.0",
|
"license": "CC-BY-SA-3.0",
|
||||||
"copyright": "https://github.com/tgstation/tgstation/commit/7dcdbc1468ffdc8689b984cb6b181d48ae41dbf2",
|
"copyright": "https://github.com/tgstation/tgstation/commit/7dcdbc1468ffdc8689b984cb6b181d48ae41dbf2, potato based on https://github.com/vgstation-coders/vgstation13/commit/1dbcf389b0ec6b2c51b002df5fef8dd1519f8068 edited by @Doru991",
|
||||||
"states": [
|
"states": [
|
||||||
{
|
{
|
||||||
"name": "potato"
|
"name": "potato"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 463 B |
@@ -76,4 +76,4 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||