v2f playerpos_2d(playerpos.X,playerpos.Z);
v2f objectpos_2d(m_position.X,m_position.Z);
- if(fabs(m_position.Y - playerpos.Y) < 3.0*BS &&
+ if(fabs(m_position.Y - playerpos.Y) < 1.5*BS &&
objectpos_2d.getDistanceFrom(playerpos_2d) < 1.5*BS)
{
if(m_attack_interval.step(dtime, 0.5))
updateNodePos();
}
+bool Oerkki1CAO::directReportPunch(const std::string &toolname, v3f dir)
+{
+ m_damage_visual_timer = 1.0;
+
+ m_position += dir * BS;
+ pos_translator.sharpen();
+ pos_translator.update(m_position);
+ updateNodePos();
+
+ return false;
+}
+
/*
FireflyCAO
*/
v3f cam_to_mob = m_node->getAbsolutePosition() - camera->getAbsolutePosition();
cam_to_mob.normalize();
int col = 0;
- if(cam_to_mob.Y > 0.7)
+ if(cam_to_mob.Y > 0.75)
col = 5;
- else if(cam_to_mob.Y < -0.7)
+ else if(cam_to_mob.Y < -0.75)
col = 4;
else{
- float mob_dir = atan2(cam_to_mob.Z, cam_to_mob.X) / M_PI * 180.;
+ float mob_dir = atan2(cam_to_mob.Z, cam_to_mob.X) / PI * 180.;
float dir = mob_dir - m_yaw;
dir = wrapDegrees_180(dir);
//dstream<<"id="<<m_id<<" dir="<<dir<<std::endl;