Logika
Logika w wielu miejscach w Mugenie opiera się na wartościach boolean czyli: 0/1, fałsz/prawda.
Przy warunkach (założeniach) czyli triggerach, trigger musi się ustawić na prawdę żeby zadziałać czyli np.: trigger1 = 1. Dokładnie "prawda" to po prostu "nie 0" czyli zapis: trigger1 = 2 też spowoduje że trigger zaskoczy.
trigger1 = 0 ;Fałsz trigger2 = 1 ;Prawda trigger3 = -8 ;Prawda
Dla tego przy wstawianiu funkcji musisz myśleć o wartościach jakie one zwracają. Używając znaku "=" możesz doprowadzić do sprawdzania wartości funkcji, co zwróci wynik na zasadzie: prawda/fałsz.
trigger1 = x = 5
Jeżeli to prawda że: x = 5 to efekt jest taki sam jak:
trigger1 = 1 ;Prawda
Dodatkowo można też stosować nawiasy, ustawiając kolejność działań lub ustalając przedziały wartości, tu przykład:
1 = (2 = (1 > 0) + !(0 > 1)) * (0.5 = (0,1))
Ponieważ: 1 > 0 to prawda, nawias można zastąpić następująco: (1 > 0) = 1. Ponieważ: 0 < 1 to zapis: 0 > 1 oznacza fałsz czyli można to zastąpić: (0 > 1) = 0, ale znak "!" oznacza przeciwieństwo, a przeciwieństwo fałszu to prawda, dla tego zapis: !(0 > 1) można zastąpić jako: !(0 > 1) = 1.
1 = (2 = 1 + 1) * (0.5 = (0,1))
Ponieważ: 1 + 1 = 2 to prawda, więc nawias można zastąpić: (2 = 1 + 1) = 1. Ponieważ zapis: (0,1) oznacza przedział liczbowy od 0 do 1, to zapis: (0.5 = (0,1)) jest prawdziwy bo liczba 0.5 zawiera się miedzy 0 a 1, można zastąpić to jako: (0.5 = (0,1)) = 1.
1 = 1 * 1
Ponieważ: 1 * 1 = 1 to prawda, więc na końcu: prawda = prawda, można bez problemu użyć takiego zapisu przy triggerze:
trigger1 = (2 = (1 > 0) + !(0 > 1)) * (0.5 = (0,1))
Taki zapis spowoduje uruchomienie triggera ponieważ wynikiem będzie: trigger1 = 1.
Przykład
Taki zapis w pliku CMD postaci, który może po przez różne poziomy energii przekierować postać do danego stanu z danym ciosem można łatwo skrócić:
[State -1] type = ChangeState trigger1 = command = "a" trigger1 = power < 1000 value = 3000 [State -1] type = ChangeState trigger1 = command = "a" trigger1 = power >= 1000 value = 3001 [State -1] type = ChangeState trigger1 = command = "a" trigger1 = power >= 2000 value = 3002
Tak może wyglądać zapis po skróceniu:
[State -1] type = ChangeState trigger1 = command = "a" value = 3000 + (power >= 1000) + (power >= 2000)