LifeRPG_v2.0/ProjectComplete.ahk
Jayvant Javier Pujara 78830b6271 Side list implemented
2012-12-04 15:36:11 -05:00

92 lines
2.7 KiB
AutoHotkey

;~ ===============================================================================
;~ Confirm Project completion:
CompleteProject:
Gui, ListView, MainList
Selection := LV_GetNext("","F")
LV_GetText(SelectedProjectID, Selection, 1)
LV_GetText(ProjectCompletionState, Selection, 2)
If (SelectedProjectID == "ID" || ProjectCompletionState = "Done")
{
return
}
else
{
GuiMsgBox("CompleteProject", "Complete Project", "Done with project?")
return
CompleteProjectYes:
Gui, CompleteProject:Submit, NoHide
GuiChildClose("CompleteProject")
CompleteProject(SelectedProjectID)
MomentumPrev := ProfileGet("momentum")
if (MomentumPrev < 100)
{
Anim := 100 - MomentumPrev
Loop % Anim
{
GuiControl, HUD_Momentum:, HUD_MomentumBar, % MomentumPrev + A_Index
GuiControl, HUD_Momentum:, HUD_MomentumPerc, % MomentumPrev + A_Index . "%"
Sleep 10
}
ProfileSet("momentum", 100)
Notification(Uppercase("Momentum Restored"), "Your MMT is back to 100%")
}
gosub FilterUpdate
RefreshSkillsList(FilterSkillSelected)
return
CompleteProjectNo:
CompleteProjectGuiClose:
CompleteProjectGuiEscape:
GuiChildClose("CompleteProject")
return
}
return
CompleteProject(SelectedProjectID)
{
global db, DifficultyLevels, AwardLevels
; Get the difficulty to know how many points to award:
CompletedProject := db.OpenRecordSet("SELECT * FROM projects WHERE id = " SelectedProjectID)
while (!CompletedProject.EOF)
{
DifficultyToAward := CompletedProject["difficulty"]
CompletedProject.MoveNext()
}
CompletedProject.Close()
; Mark project as done:
db.Query("UPDATE projects SET difficulty = 0, dateDone = " . A_Now . ", levelDone = " . LevelGet() . " WHERE id = " SelectedProjectID) ; removed importance = '',
; Get the amount of points to award for the chosen level:
for Num, Difficulty in DifficultyLevels
{
if (DifficultyToAward = Num)
for Key, Award in AwardLevels
{
if (Num = Key)
AwardGiven := Award
}
}
UpdateProgress(DifficultyLevels[DifficultyToAward] . " Achievement", AwardGiven)
; Show notifications for skill level increases:
SkillIncreaseList := db.OpenRecordSet("SELECT * FROM skills WHERE projectID = " . SelectedProjectID)
while (!SkillIncreaseList.EOF)
{
SkillToNotify := SkillIncreaseList["skill"]
Table := db.Query("SELECT COUNT(id) FROM projects WHERE id IN (SELECT projectID FROM skills WHERE skill = '" . SafeQuote(SkillToNotify) . "') AND difficulty = 0")
ColumnCount := Table.Columns.Count()
for each, row in Table.Rows
{
Loop, % ColumnCount
SkillLevel := row[A_index]
Notification("SKILL INCREASED", SkillToNotify . " increased to " . SkillLevel)
}
SkillIncreaseList.MoveNext()
}
SkillIncreaseList.Close()
}