/// <summary> /// Called, when mob respawns. /// </summary> /// <param name="sender">respawned mob</param> public void RebirthMob(Mob sender) { sender.TimeToRebirth -= RebirthMob; // Create mob clone, because we can not reuse the same id. var mob = sender.Clone(); // TODO: generate rebirth coordinates based on the spawn area. mob.MovementManager.PosX = sender.PosX; mob.MovementManager.PosY = sender.PosY; mob.MovementManager.PosZ = sender.PosZ; mob.HealthManager.Rebirth(); AddMob(mob); }
// Draw the loaded list public override void DrawLoaded(Rect box) { // Setup the layout Rect pos = box; pos.x += ImagePack.innerMargin; pos.y += ImagePack.innerMargin; pos.width -= ImagePack.innerMargin; pos.height = ImagePack.fieldHeight; if (dataRegister.Count <= 0) { pos.y += ImagePack.fieldHeight; ImagePack.DrawLabel (pos.x, pos.y, "You must create a Mob before edit it."); return; } // Draw the content database info ImagePack.DrawLabel (pos.x, pos.y, "Mobs Configuration"); if (newItemCreated) { newItemCreated = false; LoadSelectList (); newSelectedDisplay = displayKeys.Count - 1; } // Draw data Editor if (newSelectedDisplay != selectedDisplay) { selectedDisplay = newSelectedDisplay; int displayKey = displayKeys [selectedDisplay]; editingDisplay = dataRegister [displayKey]; originalDisplay = editingDisplay.Clone (); } //if (!displayList.showList) { pos.y += ImagePack.fieldHeight; pos.x -= ImagePack.innerMargin; pos.y -= ImagePack.innerMargin; pos.width += ImagePack.innerMargin; DrawEditor (pos, false); pos.y -= ImagePack.fieldHeight; //pos.x += ImagePack.innerMargin; pos.y += ImagePack.innerMargin; pos.width -= ImagePack.innerMargin; //} if (state != State.Loaded) { // Draw combobox pos.width /= 2; pos.x += pos.width; newSelectedDisplay = ImagePack.DrawCombobox (pos, "", selectedDisplay, displayList); pos.x -= pos.width; pos.width *= 2; } }