From 98f63772b3261e451c1d9bfa3df98be3f7e4de7b Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 14 Jul 2020 14:35:13 +0100 Subject: [PATCH 1/5] fix wrestling rotation --- code/datums/martial/wrestling.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 18fd8e7b18..528032b0d9 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -219,7 +219,7 @@ animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) sleep(15) if (D) - animate(D, transform = null, time = 1, loop = 0) + animate(D, transform = matrix(-180, MATRIX_ROTATE), time = 1, loop = 0) /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -419,7 +419,7 @@ animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) sleep(10) if(A) - animate(A, transform = null, time = 1, loop = 0) + animate(A, transform = matrix(-90, MATRIX_ROTATE), time = 1, loop = 0) A.forceMove(D.loc) From 657810bb139d3bcf178f5bdce0336b5e4d0db43a Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 14 Jul 2020 17:08:57 +0100 Subject: [PATCH 2/5] please fix it --- code/datums/martial/wrestling.dm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 528032b0d9..c68423c790 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -215,11 +215,17 @@ /datum/martial_art/wrestling/proc/FlipAnimation(mob/living/carbon/human/D) set waitfor = FALSE + var/transform_before if (D) + transform_before = D.transform animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) sleep(15) if (D) - animate(D, transform = matrix(-180, MATRIX_ROTATE), time = 1, loop = 0) + if(transform_before) + sleep(10) //animate calls sleep apparently so this should be fine + D.transform = transform_before + else + animate(D, transform = null, time = 1, loop = 0) /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -415,11 +421,17 @@ to_chat(A, "You can't drop onto [D] from here!") return FALSE + var/transform_before if(A) + transform_before = A.transform animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) sleep(10) if(A) - animate(A, transform = matrix(-90, MATRIX_ROTATE), time = 1, loop = 0) + if(transform_before) + sleep(10) + A.transform = transform_before + else + animate(A, transform = null, time = 1, loop = 0) A.forceMove(D.loc) From dd1cce50e84c919c14038b03f380ac4c4099a4a0 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 14 Jul 2020 17:23:18 +0100 Subject: [PATCH 3/5] better solution --- code/datums/martial/wrestling.dm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index c68423c790..1a23f63a22 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -221,11 +221,9 @@ animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) sleep(15) if (D) - if(transform_before) - sleep(10) //animate calls sleep apparently so this should be fine + animate(D, transform = null, time = 1, loop = 0) + if(transform_before) //animate calls sleep so this should be fine and stop a bug with transforms D.transform = transform_before - else - animate(D, transform = null, time = 1, loop = 0) /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -427,11 +425,9 @@ animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) sleep(10) if(A) + animate(A, transform = null, time = 1, loop = 0) if(transform_before) - sleep(10) A.transform = transform_before - else - animate(A, transform = null, time = 1, loop = 0) A.forceMove(D.loc) From 1f8e47c0f5a6a0ae2adc04023d1e9e0423925dc8 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 14 Jul 2020 18:40:20 +0100 Subject: [PATCH 4/5] actually works --- code/datums/martial/wrestling.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 1a23f63a22..131fb75052 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -216,13 +216,15 @@ /datum/martial_art/wrestling/proc/FlipAnimation(mob/living/carbon/human/D) set waitfor = FALSE var/transform_before + var/laying_before if (D) transform_before = D.transform + laying_before = D.lying animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) sleep(15) if (D) animate(D, transform = null, time = 1, loop = 0) - if(transform_before) //animate calls sleep so this should be fine and stop a bug with transforms + if(transform_before && laying_before == D.lying) //animate calls sleep so this should be fine and stop a bug with transforms D.transform = transform_before /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -420,13 +422,15 @@ return FALSE var/transform_before + var/laying_before if(A) transform_before = A.transform + laying_before = A.lying animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) sleep(10) if(A) animate(A, transform = null, time = 1, loop = 0) - if(transform_before) + if(transform_before && laying_before == A.lying) //if they suddenly dropped to the floor between this period, don't revert their animation A.transform = transform_before A.forceMove(D.loc) From 11148b0a260b3b0e7fb782e873c74590060776ee Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 14 Jul 2020 18:51:46 +0100 Subject: [PATCH 5/5] optimisaiton --- code/datums/martial/wrestling.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 131fb75052..8dc1afba81 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -223,9 +223,9 @@ animate(D, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) sleep(15) if (D) - animate(D, transform = null, time = 1, loop = 0) if(transform_before && laying_before == D.lying) //animate calls sleep so this should be fine and stop a bug with transforms D.transform = transform_before + animate(D, transform = null, time = 1, loop = 0) /datum/martial_art/wrestling/proc/slam(mob/living/carbon/human/A, mob/living/carbon/human/D) if(!D) @@ -429,8 +429,8 @@ animate(A, transform = matrix(90, MATRIX_ROTATE), time = 1, loop = 0) sleep(10) if(A) - animate(A, transform = null, time = 1, loop = 0) if(transform_before && laying_before == A.lying) //if they suddenly dropped to the floor between this period, don't revert their animation + animate(A, transform = null, time = 1, loop = 0) A.transform = transform_before A.forceMove(D.loc)