game: add notification when starting a script

This commit is contained in:
Crypto City 2021-05-15 17:09:06 +00:00
parent 594c89923f
commit be3cb8dba4
6 changed files with 10 additions and 3 deletions

View File

@ -2641,7 +2641,9 @@ void CryptoCityUrho3D::HandlePlayScript(StringHash eventType, VariantMap& eventD
cmd.x = eventData[PlayScript::P_X].GetUInt();
cmd.y = eventData[PlayScript::P_Y].GetUInt();
cmd.h = eventData[PlayScript::P_H].GetUInt();
const String script_name = eventData[PlayScript::P_SCRIPT_NAME].GetString();
SendCommand(cmd);
ui->AddToastNotification("Starting script '" + script_name + "'");
}
void CryptoCityUrho3D::HandleEnableScript(StringHash eventType, VariantMap& eventData)

View File

@ -160,6 +160,8 @@ bool UIRunestoneMessageDialog::SetupScriptWidget(const std::shared_ptr<GameWalle
TBButton *button = sw->GetWidgetByIDAndType<TBButton>(TBIDC("play"));
button->SetState(WIDGET_STATE_DISABLED, !enable);
script_name = std::move(name);
return true;
}
@ -172,6 +174,7 @@ void UIRunestoneMessageDialog::HandlePlay(StringHash eventType, VariantMap& even
newEventData[RunestoneMessagePlayScript::P_X] = runestone.x;
newEventData[RunestoneMessagePlayScript::P_Y] = runestone.y;
newEventData[RunestoneMessagePlayScript::P_H] = runestone.h;
newEventData[RunestoneMessagePlayScript::P_SCRIPT_NAME] = script_name.c_str();
SendEvent(E_RUNESTONE_MESSAGE_PLAY_SCRIPT, newEventData);
GetWidgetByIDAndType<TBToggleContainer>(TBIDC("script-container"))->SetValue(0);

View File

@ -24,7 +24,7 @@ class GameWallet;
class Flag;
URHO3D_EVENT(E_RUNESTONE_MESSAGE_CLOSED, RunestoneMessageClosed) { }
URHO3D_EVENT(E_RUNESTONE_MESSAGE_PLAY_SCRIPT, RunestoneMessagePlayScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); }
URHO3D_EVENT(E_RUNESTONE_MESSAGE_PLAY_SCRIPT, RunestoneMessagePlayScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); URHO3D_PARAM(P_SCRIPT_NAME, ScriptName); }
class UIRunestoneMessageDialog: public UITBWindow
{
@ -51,6 +51,7 @@ private:
cc::runestone_t runestone;
bool refresh;
std::string script_source;
std::string script_name;
};
#endif

View File

@ -135,6 +135,7 @@ bool UIScriptsDialog::ScriptWidget::OnEvent(const tb::TBWidgetEvent &ev)
VariantMap eventData;
eventData[ScriptsPlay::P_SCRIPT] = item->script;
eventData[ScriptsPlay::P_CITY] = item->dialog->game->playerState.script_city;
eventData[ScriptsPlay::P_SCRIPT_NAME] = item->str.CStr();
item->dialog->SendEvent(E_SCRIPTS_PLAY_SCRIPT, eventData);
item->dialog->listContainer->SetValue(0);

View File

@ -29,7 +29,7 @@ namespace tb
class GameState;
class GameWallet;
URHO3D_EVENT(E_SCRIPTS_PLAY_SCRIPT, ScriptsPlay) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); }
URHO3D_EVENT(E_SCRIPTS_PLAY_SCRIPT, ScriptsPlay) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); URHO3D_PARAM(P_SCRIPT_NAME, ScriptName); }
URHO3D_EVENT(E_SCRIPTS_SELECT_SCRIPT, ScriptsSelect) { URHO3D_PARAM(P_SCRIPT, Script); }
URHO3D_EVENT(E_SCRIPTS_CHOICE_MADE, ScriptsChoiceMade) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_STATE, State); URHO3D_PARAM(P_CHOICE, Choice); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_OWNER, Owner); }
URHO3D_EVENT(E_SCRIPTS_CLOSED, ScriptsClosed) {}

View File

@ -197,7 +197,7 @@ URHO3D_EVENT(E_CRYPTOCITY_SMELT, Smelt) { URHO3D_PARAM(P_COIN, Coin); URHO3D_PAR
URHO3D_EVENT(E_CRYPTOCITY_CANCEL_NONCE, CancelNonce) { URHO3D_PARAM(P_NONCE, Nonce); }
URHO3D_EVENT(E_CRYPTOCITY_PLACE_MODEL, PlaceModel) { URHO3D_PARAM(P_DX, DX); URHO3D_PARAM(P_DY, DY); URHO3D_PARAM(P_DH, DH); URHO3D_PARAM(P_DR, DR); }
URHO3D_EVENT(E_CRYPTOCITY_NEW_SCRIPT, NewScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_BLOBS, Blobs); }
URHO3D_EVENT(E_CRYPTOCITY_PLAY_SCRIPT, PlayScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); }
URHO3D_EVENT(E_CRYPTOCITY_PLAY_SCRIPT, PlayScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_FLAG, Flag); URHO3D_PARAM(P_X, X); URHO3D_PARAM(P_Y, Y); URHO3D_PARAM(P_H, H); URHO3D_PARAM(P_SCRIPT_NAME, ScriptName); }
URHO3D_EVENT(E_CRYPTOCITY_ENABLE_SCRIPT, EnableScript) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_ENABLE, Enable); }
URHO3D_EVENT(E_CRYPTOCITY_SCRIPT_CHOICE, ScriptChoice) { URHO3D_PARAM(P_SCRIPT, Script); URHO3D_PARAM(P_STATE, State); URHO3D_PARAM(P_CHOICE, Choice); URHO3D_PARAM(P_CITY, City); URHO3D_PARAM(P_OWNER, Owner); }
URHO3D_EVENT(E_CRYPTOCITY_SET_GLOBAL_VARIABLE, SetGlobalVariable) { URHO3D_PARAM(P_NAME, Name); URHO3D_PARAM(P_VALUE, Value); }