Here's one I'm sure Defiant or USS Sov know answer to. Have a new Akira bridge WIP with Intrepid-style flipping centre console and new walls that move into position on red alert. All works but not perfectly due to issue in autoload script.
With this script, lcar walls move and animate on red alert but centre console doesn't open:
import Foundation
def GreenAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) or dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0):
dAnimInfo["YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played"] = 0
dAnimInfo["RedAlert::bridge::data/animations/ak-bp/alert1.NIF played"] = 0
return 1
return 0
def GreenAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) or dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0):
dAnimInfo["YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played"] = 0
dAnimInfo["RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played"] = 0
return 1
return 0
def YellowRedAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played", 0):
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played"] = 0
return 1
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) == 0 and dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) == 0:
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played"] = 0
return 1
return 0
def YellowRedAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played", 0):
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played"] = 0
return 1
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) == 0 and dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) == 0:
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played"] = 0
return 1
return 0
'Animations': {
'GreenAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/alert2.NIF", "Requirement": GreenAlertConsole,
"ani": "data/animations/ak-bp/lcaralert2.NIF", "Requirement": GreenAlertConsole,
},
],
},
'YellowAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/alert1.NIF", "Requirement": YellowRedAlertConsole,
"ani": "data/animations/ak-bp/lcaralert1.NIF", "Requirement": YellowRedAlertConsole,
},
],
},
'RedAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/alert1.NIF", "Requirement": YellowRedAlertConsole,
"ani": "data/animations/ak-bp/lcaralert1.NIF", "Requirement": YellowRedAlertConsole,
},
],
},
},
'Maps':{
With this script, console flips open but lcar walls don't move.
def GreenAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) or dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0):
dAnimInfo["YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played"] = 0
dAnimInfo["RedAlert::bridge::data/animations/ak-bp/alert1.NIF played"] = 0
return 1
return 0
def GreenAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) or dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0):
dAnimInfo["YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played"] = 0
dAnimInfo["RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played"] = 0
return 1
return 0
def YellowRedAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played", 0):
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played"] = 0
return 1
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) == 0 and dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/alert1.NIF played", 0) == 0:
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/alert2.NIF played"] = 0
return 1
return 0
def YellowRedAlertConsole(dAnimInfo, ani):
if dAnimInfo.get("GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played", 0):
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played"] = 0
return 1
if dAnimInfo.get("YellowAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) == 0 and dAnimInfo.get("RedAlert::bridge::data/animations/ak-bp/lcaralert1.NIF played", 0) == 0:
dAnimInfo["GreenAlert::bridge::data/animations/ak-bp/lcaralert2.NIF played"] = 0
return 1
return 0
'Animations': {
'GreenAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/lcaralert2.NIF", "Requirement": GreenAlertConsole,
"ani": "data/animations/ak-bp/alert2.NIF", "Requirement": GreenAlertConsole,
},
],
},
'YellowAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/lcaralert1.NIF", "Requirement": YellowRedAlertConsole,
"ani": "data/animations/ak-bp/alert1.NIF", "Requirement": YellowRedAlertConsole,
},
],
},
'RedAlert': {
'bridge': [
{
"ani": "data/animations/ak-bp/lcaralert1.NIF", "Requirement": YellowRedAlertConsole,
"ani": "data/animations/ak-bp/alert1.NIF", "Requirement": YellowRedAlertConsole,
},
],
},
},
'Maps':{
I'm sure it's just an ordering issue but be nice to fix so both open and move on red alert and back. Presumably also a way to redact script down?