public void DropUnconscious(long duration = -1, bool toFront = true) { var cat = AniCatalog.Unconscious; ScriptAniJob job = toFront ? cat.DropFront : cat.DropBack; if (job != null) { this.ModelInst.StartAniJob(job); } uncon = toFront ? Unconsciousness.Front : Unconsciousness.Back; var strm = this.BaseInst.GetScriptVobStream(); strm.Write((byte)ScriptVobMessageIDs.Uncon); strm.Write((byte)uncon); this.BaseInst.SendScriptVobStream(strm); if (duration >= 0) { if (unconTimer == null) { unconTimer = new GUCTimer(LiftUnconsciousness); } unconTimer.SetInterval(duration); unconTimer.Start(); } OnUnconChange?.Invoke(this); }
void DoLiftUncon() { uncon = Unconsciousness.None; var strm = this.BaseInst.GetScriptVobStream(); strm.Write((byte)ScriptVobMessageIDs.Uncon); strm.Write((byte)uncon); this.BaseInst.SendScriptVobStream(strm); int hp = this.HP + 25; this.SetHealth(hp > HPMax ? HPMax : hp); OnUnconChange?.Invoke(this); }