Page 1 of 2

Action Index

Posted: 05 Oct 2017, 10:55
by Lobby
A generic action looks like:
Show
action name
Description
To do some actions (iff the corresponding condition is true) you can use the code:

Code: Select all

"actions":[{"type":"action name",...},...],
Possible additional attribute for actions are:
id, x, y, z, x2, y2, frame, invert, ignore, level,inner


Show
build
Builds whatever is given as id. If provided, the given frame will be used. For roads z can be used to provide the level to build at (0 or 1). For fences if frame is provided (0..3) it will be interpreted as edge index where to place the fence; if no frame was provided the fence will be built around the context area.
Show
remove
Removes anything from the given position. Convenient to ensure that a building can be built.
Show
remove fence
Removes the fence at the current location. If frame is provided it will be interpreted as edge index to remove.
Show
remove pipe
Removes the pipe at the given position. If id is provided the pipe will only be removed if it matches that id.
Show
remove road decoration
Removes the road decoration at the given position and level. If id is provided only road decorations with matching id will be removed.
Show
remove road occupation
Removes the road occupation at the given position and level. Reserved for future use.
Show
frame
Sets the frame of the building at x, y to the specified frame. The frame can also be specified using code.
Show
burn
Initiates a fire on the building at x, y. Be aware that not all buildings can burn.
Show
extinguish
Extinguishes the fire of the building at x, y.
Show
play
Plays the sound from the given id.
Show
notify
See here for more information.
Show
disaster
Issues a disaster at the given position. The disaster is specified using the "id" tag. Possible values are:
  • "fire"
  • "meteor"
  • "earthquake"
  • "nuke"
  • "tornado"
  • "nuclear plant"
  • "illness"
  • "flooding"
  • "riot"
  • "crime"
  • "ufo"
  • "generic building"
Set "frame":0 to let the disaster spawn at a random position. If the disaster wasn't issued successfully, further actions won't be executed. Set "ignore":true to change this behavior.
Show
toast
Shows an Android toast overlay with id as content.
Show
firework
Emits the firework specified by id at x, y.
Show
set
Sets the value of the variable id to the value given in code. See here for more information about variables.
Show
performance
Applies the performance provided in code to of the building at x, y (values 0 - 100).
Show
animation pause
Pauses the animation slot "level" (0 by default). Additionally sets the frame to "frame" if specified.
Show
animation resume
Resumes the animation slot "level" (0 by default). Additionally sets the frame to "frame" if specified.
Show
rect
Can be used to execute actions in a rectangular area.
See here: https://theotown.com/forum/viewtopic.ph ... 25#p118725
Show
call
Can be used to call a Lua function.
See here: viewtopic.php?f=81&t=10561

Re: Fun condition and action index

Posted: 17 Nov 2017, 17:29
by Lobby
New with the next version: disaster action :teach

Re: Fun condition and action index

Posted: 17 Nov 2017, 17:30
by KINGTUT10101
Is illness going to be functional?

Re: Fun condition and action index

Posted: 17 Nov 2017, 17:34
by Lobby
No, it shouldn't do anything, yet.

Re: Fun condition and action index

Posted: 17 Nov 2017, 17:45
by JustAnyone
Lobby wrote: 17 Nov 2017, 17:34 ...yet.
:bb

Re: Fun condition and action index

Posted: 07 Jan 2018, 12:22
by JustAnyone
KoalaGuy wrote: 07 Jan 2018, 11:51 @Lobby
It looks like the nuke disaster doesn't work with fun. Could you please have a look at it :bq
It does. At least for my disasterous presents.

Re: Fun condition and action index

Posted: 07 Jan 2018, 12:38
by Lobby
This code works for me :json

Code: Select all

"on click fun":[
  {
    "actions":[{"type":"disaster","id":"nuke"}]
  }
]
So how does your code look like?

Re: Fun condition and action index

Posted: 07 Jan 2018, 12:46
by CommanderABab
It works for me. Set speed to max. Build a 6x6 road enclosure(max!), totally enclosed. Build the wandering blue animals inside! (They're nuclear enabled). Don't let any out! Set some on fire. Wait til the animation freezes. Wait a bit longer!

Re: Fun condition and action index

Posted: 07 Jan 2018, 16:56
by CommanderABab

Code: Select all

"on event fun":[
        {"actions":[{"type":"burn","x":0,"y":1}],"always":true,"ignore success":true},
        {"actions":[{"type":"burn","x":0,"y":-1}],"always":true,"ignore success":true},
        {"actions":[{"type":"burn","x":1,"y":0}],"always":true,"ignore success":true},
        {"actions":[{"type":"burn","x":-1,"y":0}],"always":true,"ignore success":true}                
      ],   
If you are spawning rioters on the roads from a 1x1 building..

Copy the actions and change the 1s to 2s etc for greater radius. You have to remember it might hit a big building. If the spawning building is bigger than 1x1, you have to add its width to the positive x and y values to avoid setting itself on fire.

Re: Fun condition and action index

Posted: 08 Jan 2018, 18:12
by Lobby
Yes, that's the issue:
issue.png
issue.png (12.85 KiB) Viewed 20367 times
Will be fixed :bf

Re: Fun condition and action index

Posted: 27 Jan 2018, 08:05
by Mg3094066
Lobby wrote: 17 Nov 2017, 17:34 No, it shouldn't do anything, yet.
I have a question
How the meteor explosion works?

Re: Fun condition and action index

Posted: 27 Jan 2018, 08:15
by JustAnyone
Creates white screen, shakes it, builds scrap and crater.

Re: Fun condition and action index

Posted: 27 Jan 2018, 08:18
by Mg3094066
JustAnyone wrote: 27 Jan 2018, 08:15 Creates white screen, shakes it, builds scrap and crater.
In a json code, may be used for napalms because we can produce big fires

Re: Fun condition and action index

Posted: 31 Jan 2018, 01:58
by Lobby
@former member I think you would have to do it the other way: The buildings that should change should do it in their own fun code.

@former member I'm not sure why or how to add it. After all, the system isn't meant to be used that way.

Re: Fun condition and action index

Posted: 04 Jul 2018, 19:09
by cesareborgia94
Lobby wrote: 17 Nov 2017, 17:29 New with the next version: disaster action :teach
Lobby, it may be too late for this question but what does the disaster action do?
Also in the action index, can you specify, explain in-depth what does toasts do?
Thank you for your time.

Re: Action Index

Posted: 04 Jul 2018, 19:16
by Kulche
For disaster action, it summons chosen disaster (earthquake, meteor, nukes, etc.) at random or specified location.

Code: Select all

"fun":[
{
"actions":[
{
"type":"disaster",  //Makes fun disastrous
"id":"nuke",  //Shoots nuke at x and y   \/ look down there\/
"x":10,
"y":-10  //Specifies location
}
]
}
]

Re: Action Index

Posted: 04 Jul 2018, 19:20
by cesareborgia94
Kulche wrote: 04 Jul 2018, 19:16 For disaster action, it summons chosen disaster (earthquake, meteor, nukes, etc.) at random or specified location.

Code: Select all

"fun":[
{
"actions":[
{
"type":"disaster",  //Makes fun disastrous
"id":"nuke",  //Shoots nuke at x and y   \/ look down there\/
"x":10,
"y":-10  //Specifies location
}
]
}
]
Does it apply to crime as well?
Sorry for asking the repeated questions, jusy need some confirmation.
Also, if you did not specify location, it would happen at a random place, yes?

Re: Action Index

Posted: 04 Jul 2018, 19:25
by Kulche
Propably yes, cuz Lobby wrote it upper.

Idk, try it.

Re: Action Index

Posted: 04 Jul 2018, 19:35
by Lobby
Yes, it works also for crime :bc

Toasts are especially useful for debugging. It's basically a text that is shown for a short amount of time and can be used to provide some information. See here for more details: https://developer.android.com/guide/top ... ers/toasts

Usage is quite simple:

Code: Select all

"actions":[{"type":"toast","id":"Hi, I am some text!"}]
If you want to print the value of a variable $myvar on the screen you can use string interpolation:

Code: Select all

"actions":[{"type":"toast","id":"The value of the variable is ${$myvar}"}]
The content of ${*} will be evaluated at runtime and can therefore be used to show the value of variables.

Re: Action Index

Posted: 04 Jul 2018, 19:45
by CommanderABab
Show
quote
Lobby wrote: 04 Jul 2018, 19:35 Yes, it works also for crime :bc

Toasts are especially useful for debugging. It's basically a text that is shown for a short amount of time and can be used to provide some information. See here for more details: https://developer.android.com/guide/top ... ers/toasts

Usage is quite simple:

Code: Select all

"actions":[{"type":"toast","id":"Hi, I am some text!"}]
If you want to print the value of a variable $myvar on the screen you can use string interpolation:

Code: Select all

"actions":[{"type":"toast","id":"The value of the variable is ${$myvar}"}]
The content of ${*} will be evaluated at runtime and can therefore be used to show the value of variables.
#stringinterpolation,
#runtimeevaluation