Files
CodenameEngine/source/funkin/scripting/events/NoteHitEvent.hx
T
2022-10-18 15:52:30 +02:00

106 lines
2.8 KiB
Haxe

package funkin.scripting.events;
import funkin.game.Note;
import funkin.game.Character;
class NoteHitEvent extends CancellableEvent {
@:dox(hide) public var animCancelled:Bool = false;
@:dox(hide) public var deleteNote:Bool = true;
@:dox(hide) public var unmuteVocals:Bool = true;
@:dox(hide) public var enableCamZooming:Bool = true;
/**
Whenever a miss should be added.
**/
public var misses:Bool = true;
/**
* Note that has been pressed
*/
public var note:Note;
/**
* Character that pressed the note
*/
public var character:Character;
/**
* Whenever the Character is the player
*/
public var player:Bool;
/**
* Note Type name (null if default note)
*/
public var noteType:String;
/**
* Direction of the press (0 = Left, 1 = Down, 2 = Up, 3 = Right)
*/
public var direction:Int;
/**
* Score gained after note press.
*/
public var score:Int;
/**
* The amount of health that'll be gained from pressing that note. If called from `onNoteMiss`, the value will be negative.
*/
public var healthGain:Float;
/**
* Creates a new NoteHitEvent.
*/
public function new(note:Note, character:Character, player:Bool, noteType:String, direction:Int, healthGain:Float, unmuteVocals:Bool = true, score:Int = 350) {
super();
this.note = note;
this.character = character;
this.player = player;
this.noteType = noteType;
this.direction = direction;
this.healthGain = healthGain;
this.unmuteVocals = unmuteVocals;
this.score = score;
}
/**
* Prevents the default sing animation from being played.
*/
public function preventAnim() {
animCancelled = true;
}
@:dox(hide)
public function cancelAnim() {preventAnim();}
/**
* Prevents the note from being deleted.
*/
public function preventDeletion() {
deleteNote = false;
}
@:dox(hide)
public function cancelDeletion() {preventDeletion();}
/**
* Prevents the vocals volume from being set to 1 after pressing the note.
*/
public function preventVocalsUnmute() {
unmuteVocals = false;
}
@:dox(hide)
public function cancelVocalsUnmute() {preventVocalsUnmute();}
/**
* Prevents the vocals volume from being muted in case its a parameter of `onNoteMiss`
*/
public function preventVocalsMute() {
unmuteVocals = true;
}
@:dox(hide)
public function cancelVocalsMute() {preventVocalsMute();}
/**
* Prevents the camera zoom every 4 beats from enabling.
*/
public function preventCamZooming() {
enableCamZooming = false;
}
@:dox(hide)
public function cancelCamZooming() {preventCamZooming();}
}