#include "CollisionScript.h" #include #include #include using namespace crepe; using namespace std; void CollisionScript::init() { subscribe([this](const CollisionEvent & ev) -> bool { return this->on_collision(ev); }); } bool CollisionScript::on_collision(const CollisionEvent & ev) { RefVector animators = this->get_components_by_name("player"); RefVector emitters = this->get_components_by_name("player"); if (ev.info.other.metadata.tag == "zapper") { for (Animator & anim : animators) { anim.active = true; anim.set_anim(4); anim.data.looping = true; } for (ParticleEmitter & emitter : emitters) { emitter.data.emission_rate = 0; } return true; } else if (ev.info.other.metadata.tag == "laser") { for (Animator & anim : animators) { anim.active = true; anim.set_anim(4); anim.data.looping = true; } for (ParticleEmitter & emitter : emitters) { emitter.data.emission_rate = 0; } play_scr.active = false; end_scr.active = true; return true; } else if (ev.info.other.metadata.tag == "missile") { for (Animator & anim : animators) { anim.active = true; anim.set_anim(5); anim.data.looping = true; } for (ParticleEmitter & emitter : emitters) { emitter.data.emission_rate = 0; } play_scr.active = false; end_scr.active = true; return true; } return false; }