106 lines
2.8 KiB
Haxe
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();}
|
|
} |