diff --git a/cirnofarm.p64 b/cirnofarm.p64 index ebdd95e..7da9a79 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,7 +6,7 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTQxNF1dbHo0ABENAADjRAAA8xR7WzBdPXtibXA9cHh1 +NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTQ5M11dbHo0AGkNAAA9RQAA8xR7WzBdPXtibXA9cHh1 AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP @@ -54,64 +54,65 @@ hQHTEBMPGwMOAgA2EAMOAgBfExATDgMcABSv0yAPFgVwDQUwDQYADy7wAt8SD2AEPlE8DxwsYPYV HAdAHgAHXAcAHgAeEHwQHiAHDAcMB0xwFwAIAJ8McBcQF5AYEBgnEh7wBSABLD8cAVABHG4BQAEM DhEOEQcOCgAiBw4DAAEMADIcBxwKAPAPDxdHDQ4BMAEcJw0nHgEwMQwHDjFQAQcMBwgHDgcBCgD- JQ4IDggeBwEwAQccbgcBEAEXLF4XAQABF3wBFwEQEQcBFwEHEQcRQAEAAQcBBwGQARwBHAHcEiAP -MgD-GP8ogA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9cG2Q -TbAtUJkAHw8yAP9H-wAEBAQAHxwADhceFw4AHgA8ABr-BggIBIAHMAcgBxAH8AQHEAcgBzAHgEIA -HZAIADgACAAIMAgGAIEQCAAYUBhQGAoABBYAPzgACAUBHTNQBQACADgQBQACALEVAAUPGQUOBQ4F -AAYAERAGAPAAXgkFABUOBR4JDgkKKQ4JDQlASQoZDhUA8QgZSgkaHgUADgUOGUoZLhUuCRoXCgke -CRIA4AkKCToJCh4AFVkaCQ4ZTQDwAR4JCjkuBQ4VAAUJDgkeCQprAAKCAGAJPgUOBTALAFYOGR4A -BaEAPwAFEBUCHw8yALPwFBC-GCAOtA4ADtQeRDxEHiQcPxwcJB4kDF0MJB4UDA1cDQwUCAAyDD0M -CgARHQIACAoA0SQMHRwdDCQeJBw9HCRFAI-UDgAOtA4gvlUBIA8yAP9LtxOfEFAOHA4sDgwOCAAj -LgwQAAAIAAgaACo8LhgAIgweCgAxYA4MIgCPcB5MDoBe8BSIAB75DxVVgAVWBXAFXxAFcAVeBXAF -Bj4GBXAFFh4WBXAFVgQAT4BV8CVMAR8PMgD-GfAIIcEQAYwPERsMDxwhDH8QHA8cARARLxAzCvIF -MT8QEYABLgGgAR4PHAGQAR4NAZAPABANBQBfAbAx8ApwAB7wHzYpwBoZECpQKhkAChlQSjlABhkK -FgkGGhYwCQopChkKBhkGEGoJKgkWIBYKFgoJAK8wNhlGUIaQJvAGQQEfDzIA---------------- -----------------------9BUD0xMX19 +MgCB8B1gDdABDQGwASYBoAE2AYABFh8WFgFgASYeFgFQLWYdYAEGEQYRgAEWAQYBkAwAAQYAlRYB +gAEGAQABBggA-wZwAQYBIAEGAVABJgEAASYBUCEgISDwAIH-KIAPG9AegE8YDj1APQJtML0wHQJt +Ah0gXQJdIM0wHQJNAi0wTQhdMD0CbUBdAi1gfXBtkE2wLVCZAB8PMgD-R-8ABAQEAB8cAA4XHhcO +AB4APAAa-wYICASABzAHIAcQB-AEBxAHIAcwB4BCAB2QCAA4AAgACDAIBgCBEAgAGFAYUBgKAAQW +AD84AAgFAR0zUAUAAgA4EAUAAgCxFQAFDxkFDgUOBQAGABEQBgDwAF4JBQAVDgUeCQ4JCikOCWcJ +QEkKGQ4VAPEIGUoJGh4FAA4FDhlKGS4VLgkaFwoJHgkSAOAJCgk6CQoeABVZGgkOGU0A8AEeCQo5 +LgUOFQAFCQ4JHgkKawACggBgCT4FDgUwCwBWDhkeAAWhAD8ABRAVAh8PMgCz8BQQvxggDrQOAA7U +HkQ8RB4kHD8cHCQeJAxdDCQeFAwNXA0MFAgAMgw9DAoAER0CAAgKANEkDB0cHQwkHiQcPRwkRQCP +1A4ADrQOIL5VASAPMgD-S7cTnxBQDhwOLA4MDggAIy4MEAAACAAIGgAqPC4YACIMHgoAMWAODCIA +j3AeTA6AXvAUiAAe_Q8VVYAFVgVwBV8QBXAFXgVwBQY_BgVwBRYeFgVwBVYEAE_AVfAlTAEfDzIA +-xnwCCHBEAGMDxEbDA8cIQx-EBwPHAEQES8QjQryBTE-EBGAAS4BoAEeDxwBkAEeDQGQDwAQDQUA +XwGwMfAKcAAe8B82KcAaGRAqUCoZAAoZUEo5QAYZChYJBhoWMAkKKQoZCgYZBhBqCSoJFiAWChYK +CQCvMDYZRlCGkCbwBkEBHw8yAP--------------------------------------QVA9MTF9fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTQzNV1dbHo0ANAFAAAKQgAA8Ah7e2JtcD11c2VyZGF0 +NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTUyNF1dbHo0AMwFAAALQgAA8Ah7e2JtcD11c2VyZGF0 YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz ACYfNnwABD8xMzCAAEoAAQA-MzYwXAATBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAA -DwEANgSAAB8zYAEALzMwAQBHHjbUAA7sAA4kAA8BAD8OaAAPAQByHjOAAQ_AAGAPAQD-BC82MAEA -awS0Aw4QAA8BAFMMcAAHEAAvNjF-Ac8PxQBJFzEEAA8BAAYHcAEOEAAPAQBQDHAADBAAD2gEHQgB -AAhIAA_ABBoPgABCDwEA-xcOLAsPAQAULzQw0AE-HzMlBBgvNDABANT1GiIpLGhpZGRlbj1mYWxz -ZSxuYW1lPSJvYmplY3RzIixwYW5feD05Ny42AQARNxUAhXk9LTkzLjgzAQCiLHRpbGVfaD0xNgoA -EHcKAI96b29tPTF9LIEQ-2xTOTAwMGIIAA8BAP------------------jA_BEAOkZm9yZWdyb3Vu -ZIQQVi03NC4zAQADhRBWOTkuMTaaEA_EEIIvMzkEAAMPAQAFLzM5BAADDwEAISMzMvwPDwQAAC8z -MDAABBM5BAAaYgwALzMwgAAkBEQAFzAMAB85gAAQGjAMAA_AABkENAEjM2FAACJkMAEAE2MQAAAc -ABY4KAAPAAESBzAADwQAAQ9EAAIvZDABAAcHjAAJPAAPMAAJC5QACAgAHzOAAFkXMAwAD4AAPRc1 -BAAIAQAvNTABAAoJgAAfZgQAAyYxNgQAJzBmBAAIPAADAQA-M2UwAQAaCYAADxEXBQiAAA4BAA48 -AA8BABgPgAA2HzUEAAwEAQAaNQQADwABtg_AAOxqMmIwMDJjBAAEAQAvMmMEAAQWZIAAAAEALzI5 -BAAAFmF8AAAEACYyOBwACIAAPzM1MAEAHhMzoAYvMzkEAAgLGAEIsAAPgAAtAAEAAV8AE2EQBRdh -BAADEAAvMjCAAKMiMmLgAQ_AABIPAQAIAEAHEzJ1AB4yLQAPgAAGKjMzLAIETAINpAAPgAAMJzBj -kAYfYwABCB5kgAAfMygAAA2kAA_AADQP3AIFD4AALgsBAA_AABUvMDD8CAAeYaQAD4AASQksCBc5 -SAEIBAIPgAA1FzUEAA_AABEDLAAPgAAVIzNlBAAfMAEAAw7gAg8BAAsEHAMMPAANNAMLBAAOAQAP -iAENDxwCGw0YAAcEAC8wMIAADwRYBg8BAA4TY_gEBAQAH2QYAAAWYggFLjBifAEPgAAFDAwED4AA -WQ8BAEcPgACPJjAwqAIPBABBD4QQEU9zb2xpfxBVLzEwAQD-gB45DAAPAQChLzE4BAADDwEABS8x -YQQAAw8BACEvMTgEAAcPAQAFLzFhBAADLzAwkAEfLzE4BAAHDwEABScxYgQAFjkEAC8wOAQADAcB -AC8xYwQAAyYwZgQAJjFjBAAJAQAfOAQAJAcBAC8xYwQAGwkBAB84BAAkBwEALzFjBAAbCAEALzE4 -BAAjCAEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAjCAEALzFjBAAbCAEALzE4BAAj -CAEALzFjBAAbCAEALzE4BAAjDwEAESYxYwQADwEABS8xYgQAAAQIBB9iBAAHDwEAESYxYQQADwEA -Bh84BAAkDwEAECYxYQQADwEABh84BAAkDwEAECYxYQQADwEABh84BAAkAAEAH2UEAAgDAQAOfAAL -AQAeOAQADUsNFmEcAAUEABcwbAAPBAABD4AAKB8znwsBGzgEABcwbAAPBAABD4AAbQwEAA8BAAUf -OIAA6y4xYngED4AAAQQcAAmABB9lBAAYDwEADC8xYQQAEw8BAAIvZTABAC4vMWEEABMPgAD-bx9l -BAAgDwEAEC8xYQQAEy8wZQQAHg8DIZJMYmFjawMhHziEEAA-MTU2hRARUG09MX19 +DwEANgSAAB8zYAEABxAAPzQ1MAEAOx421AAO7AAOJAAPAQA-DmgADwEA-34OfAIPAQBsLzYwAQBr +BLQDDhAADwEAUwxwAAcQAC82MdwBTy82MAEAsB82EAoHBAQADzUBBwMEAA4QAA8BAFMMcAAMEAAP +AQAZDHQGHjQcAA8BABMPgABCDwEA-xcOLAsPAQAULzQw0AE-HzMlBBgvNDABANT2HCIpLGhpZGRl +bj1mYWxzZSxuYW1lPSJvYmplY3RzIixwYW5feD0tMTA3LjMBAAEXAHR5PTMwLjE2AQCyNyx0aWxl +X2g9MTYKABB3CgCPem9vbT0xfSyCEP9sUzkwMDBiCAAPAQD------------------4wPghADpWZv +cmVncm91bmSFEC83NIQQAC85OYQQjy8zOQQAAw8BAAUvMzkEAAMPAQAhIzMy-A8PBAAALzMwMAAE +EzkEABpiDAAvMzCAACQERAAXMAwAHzmAABAaMAwAD4AAGQQ0ASMzYUAAImQwAQATYxAAABwAFjgo +AA8AARIHMAAPBAABD0QAAi9kMAEABweMAAk8AA8wAAkLlAAICAAfM4AAWRcwDAAPgAA9FzUEAAgB +AC81MAEACgmAAB9mBAADJjE2BAAnMGYEAAg8AAMBAD8zZTABABoJgAAPEhcFCIAADgEADjwADwEA +GA_AADYfNQQADAQBABo1BAAPAAG2D4AA7GoyYjAwMmMEAAQBAC8yYwQABBZkgAAAAQAvMjkEAAAW +YXwAAAQAJjI4HAAIgAA-MzUwAQAeEzOgBi8zOQQACAsYAQiwAA_AAC0AAQABXwATYRAFF2EEAAMQ +AC8yMIAAoyIyYuABD4AAEg8BAAgAQAcTMnUAHjItAA_AAAYqMzMsAgRMAg2kAA_AAAwnMGOQBh9j +AAEIHmSAAB8zKAAADaQAD4AANA-cAgUPgAAuCwEAD4AAFS8wMPwIAB5hpAAPgABJCSwIFzlIAQgE +Ag_AADUXNQQAD4AAEQMsAA_AABUjM2UEAB8wAQADDuACDwEACwQcAww8AA00AwsEAA4BAA_IAQ0P +HAIbDRgABwQALzAwgAAPBFgGDwEADhNj6AQEBAAfZBgAABZiCAUuMGJ8AQ_AAAUMDAQPgABZDwEA +Rw_AAI8mMDCoAg8EAEEPhBART3NvbGl-EFUvMTABAP_AHjkMAA8BAKEvMTgEAAMPAQAFLzFhBAAD +DwEAIS8xOAQABw8BAAUvMWEEAAMvMDCQAR8vMTgEAAcPAQAFJzFiBAAWOQQALzA4BAAMBwEALzFj +BAADJjBmBAAmMWMEAAkBAB84BAAkBwEALzFjBAAbCQEAHzgEACQHAQAvMWMEABsIAQAvMTgEACMI +AQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAvMWMEABsIAQAvMTgEACMIAQAv +MWMEABsIAQAvMTgEACMPAQARJjFjBAAPAQAFLzFiBAAABAgEH2IEAAcPAQARJjFhBAAPAQAGHzgE +ACQPAQAQJjFhBAAPAQAGHzgEACQPAQAQJjFhBAAPAQAGHzgEACQAAQAfZQQACAMBAA58AAsBAB44 +BAANSw0WYRwABQQAFzBsAA8EAAEPgAAoHzOfCwEbOAQAFzBsAA8EAAEPgABtDAQADwEABR84gADr +LjFieAQPgAABBBwACYAEH2UEABgPAQAMLzFhBAATDwEAAi9lMAEALi8xYQQAEw_AAP9vH2UEACAP +AQAQLzFhBAATLzBlBAAeDwMhkkxiYWNrAyEfOIQQAD8xNTaFEBFQbT0xfX0= :: map/1.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTI4IDIxOjA4OjM1Iixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIscmV2aXNpb249NV1dbHo0AJoAAAA9QQAA8Ah7e2JtcD11c2VyZGF0YSgi -aTE2IiwzMgMALyIwAQD--------------------7wSIpLHBhbl94PS0yNAoA8gF5PS0xNDIsdGls -ZV9oPTE2CgAQdwoAj3pvb209MX0sTxD--------------------------------------------- ---------------------BlBtPTF9fQ== +NC0yOSAyMDoyNToyMiIscmV2aXNpb249NjZdXWx6NACoAAAAcUEAAPAIe3tibXA9dXNlcmRhdGEo +ImkxNiIsMzIDAC8iMAEA--------------------_-EKIiksaGlkZGVuPWZhbHNlLHBhbl94PS0y +NAoA8gF5PS0xNDIsdGlsZV9oPTE2CgAQdwoAj3pvb209MX0sXBD------------------------- +----------------------------------------LVBtPTF9fQ== :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIscmV2aXNpb249MTEyM11dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A +NC0yOSAyMDoyNToyMiIscmV2aXNpb249MTE4NF1dbHo0AEYBAABmCAAA8CdweHUAAygAAAMABA9A EAIOAAGgASACoA4ADxAADfDKAQIDBAUGBwAP-5AICQoLDwwPDQ8ODw8QAPAADQ8RDxIPEw8UDxUP Fg8XEwDxAQ8YDxkPGg8bDxwPHQ8eDx8UAPEAIA8hDyIPIw8kDyUPJg8nFADxACgPKQ8qDysPLA8t Dy4PLxQA8QAwDzEPMg8zDzQPNQ82DzcUAP8FOA85DzoPOw88Dz0PPg8-AA--8P8BAOvyJ1oBEAYP @@ -120,14 +121,14 @@ Gy-wADAA--_CH-8BAMzxHegPQAANQA8XAAsaCAYIEAIDEAUABgAIAEkXACYICVD--wnxF-4J-Bf_ CfBwKwBf-rDwcAQIAP-cH-8BAJdQ-----x8= :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yOSAyMDoyNToyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-29 06:23:07",revision=1430]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-29 20:25:22",revision=1507]] include("/cirnofarm/src/game.lua") :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0yOSAwNjoyMzowNyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +NC0yOSAyMDoyNToyMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ibWFwLzEubWFwIix3b3Jrc3BhY2VfaW5kZXg9 diff --git a/src/game.lua b/src/game.lua index e138119..2a10e2f 100644 --- a/src/game.lua +++ b/src/game.lua @@ -58,6 +58,7 @@ local weapons_manager = require(make_path("weapons")) local Barrel = require(make_path("barrel")) local Strawberry = require(make_path("strawberry")) local Box = require(make_path("box")) +local NPC = require(make_path("npc")) include(make_path("pgui" .. ".lua")) @@ -115,7 +116,8 @@ actors_db = { {name="player",sprite=65,actor=nil}, {name="box",sprite=4,actor=Box}, {name="alarm",sprite=19,actor=nil}, - {name="fan",sprite=16,actor=nil} + {name="fan",sprite=16,actor=nil}, + {name="NPC",sprite=69,actor=NPC} } @@ -307,3 +309,66 @@ function check_collisions() end +function raycast(x1, y1, x2, y2, max_distance) + local dx = x2 - x1 + local dy = y2 - y1 + local step_x = dx > 0 and 1 or -1 + local step_y = dy > 0 and 1 or -1 + dx = dx < 0 and -dx or dx + dy = dy < 0 and -dy or dy + local fraction = dx - dy + local x = x1 + local y = y1 + + + + -- calculate the distance between start and end point + local distance = (math.sqrt((x2-x1)^2 + (y2-y1)^2))\1 + + local scale = max_distance / distance + local px = x1 + (x2 - x1) * scale + local py = y1 + (y2 - y1) * scale + + -- limit the maximum distance + if distance > max_distance then + --return x2, y2, false + return px, py, false + end + + -- checking the start point + --if map_manager.is_tile_shoot_solid(flr(x / tile_width), flr(y / tile_height)) then + if map_manager.is_tile_shoot_solid(x, y) then + return x1, y1, false + end + + local distance_traveled = 0 + + while distance_traveled <= max_distance and (x ~= x2 or y ~= y2) do + local prevX = x -- store previous positions for distance calculation + local prevY = y + + if fraction >= 0 then + x += step_x + fraction -= dy + else + y += step_y + fraction += dx + end + + -- calculate distance traveled + distance_traveled += math.sqrt((x - prevX) ^ 2 + (y - prevY) ^ 2)\1 + + -- return false as soon as a solid tile is hit + if map_manager.is_tile_shoot_solid(x, y) then + if x==x2 and y==y2 then -- return true only if hit tile is destination tile + return x, y, true + else + return x, y, false + end + end + end + + -- if the loop is done without hitting a solid tile, return false + return x2, y2, true +end + diff --git a/src/npc.lua b/src/npc.lua new file mode 100644 index 0000000..5f650fa --- /dev/null +++ b/src/npc.lua @@ -0,0 +1,69 @@ +local Actor = require(make_path("actor2")) + +local NPC = Actor:new() + +function NPC:new(x,y) + local n = Actor:new(x,y) + + n.spriteIndex = 69 + n.range = 64 + 16 + + n.found = false + + n.enemy_x_debug = 0 + n.enemy_x_debug = 0 + + --n.dir_vec_debug_x = 0 + --n.dir_vec_debug_y = 0 + + n.hit_x = 0 + n.hit_y = 0 + + n.raycast_frames = 0 + n.raycast_frames_to_wait = 120 + + return setmetatable(n, {__index=self}) +end + +function NPC:update() + local enemy_x = cirnoInstance.x + 8 + local enemy_y = cirnoInstance.y + 8 + + self.enemy_x_debug = enemy_x + self.enemy_y_debug = enemy_y + + --local dir_vec = get_direction_vector(self.x, self.y, enemy_x, enemy_y) + + --self.dir_vec_debug_x = dir_vec.dir_x + --self.dir_vec_debug_y = dir_vec.dir_y + + self.raycast_frames += 1 + + if (self.raycast_frames % self.raycast_frames_to_wait == 0) then + local hit_x, hit_y, hit_status = raycast(self.x, self.y, enemy_x, enemy_y, self.range, 2) + + --if (raycast_hit) then + self.hit_x = hit_x + self.hit_y = hit_y + --end + + self.found = hit_status == true + end +end + +function NPC:draw() + + --circfill(self.x,self.y,self.range,18) + local col = 30 + spr(self.spriteIndex,self.x,self.y) + print(string.format("Found: %s", tostring(self.found)),self.x,self.y-16,col) + --print(string.format("dir_x: %.2f dir_y: %.2f",self.dir_vec_debug_x, self.dir_vec_debug_y),self.x,self.y-8,28) + --print(string.format("hit_x: %.2f dir_y: %.2f", self.hit_x, self.hit_y),self.x, self.y,28) + + --line(self.x,self.y, self.enemy_x_debug, self.enemy_y_debug, 14) + line(self.x,self.y, self.hit_x, self.hit_y, col) + +end + + +return NPC \ No newline at end of file